2008-11-05 7 views
1

У меня есть эта текущая проблема с данными я должен представлять в базе данных MySQL:данных MySQL моделирование

Я должен поддерживать различные виды продуктов с различными данными каждая из них, например, автомобилей, гостиничные номера, книг, и т. д. Для моего приложения есть некоторые данные, которые являются общими для каждого продукта, такие как имя, описание, цена и т. д.

Итак, я думаю, что есть таблица продуктов с общими данными с автомобилями, гостиничными номерами, книгами и т. д. таблицы, ссылающиеся на эту таблицу продуктов в соотношении 1: 1.

Проблема заключается в том, что таблица продуктов является основной таблицей, поэтому я могу запросить таблицу продуктов и получить дополнительные данные «автоматически» с этими запросами, поэтому я могу сделать приложение более «родовым».

Любые идеи о том, как это можно сделать? У меня есть несколько идей, но я не думаю, что это лучший способ сделать это, и я не хочу идти за грязными хаками, когда эта проблема может быть более распространенной, чем я думаю.

Использование: PHP + Zend Framework + MySQL.

+1

Возможный дубликат [Как вы относитесь к полиморфизму в базе данных?] (Http://stackoverflow.com/questions/45621/how-do-you-deal-with-polymorphism-in-a-database) – 2015-10-25 18:49:58

ответ

0

Есть базовый объект, а затем использовать полиморфизм подкласс, что базовый объект. Базовый объект хранит все общие данные (в 1 таблице). Затем каждый подкласс имеет свои уникальные свойства и отправляет их из отдельной таблицы key'd в базовую таблицу. Сделайте подклассы способны загружать как общие данные из своего родительского объекта, так и загружать их уникальные/отдельные данные.