Я проектирование объявления сайта о домашних животных, которые будут иметь 3 (основные) категорий объявлений:Иерархическая модель базы данных
A- Sale
B- Breeding
C- Jobs
Проблемы я столкнулся в том, что все 3 категорий объявлений имеют некоторые общие вещи , но они также имеют некоторые отличия.
Например, категории A, B и C все имеют следующие общие черты:
category_id
ad_id
user_id
location
Однако, категория B объявления не могут быть классифицированы как "Looking For/Продажа", в то время как B & C может. Кроме того, каждая категория будет иметь свои собственные подкатегории. Например, категория А будет иметь подкатегорию принятия, а в категории подкатегории & для продажи будет включена подкатегория «Задания» и подкатегория «Службы».
У них также будут некоторые необычные атрибуты, такие как заработная плата только в категории C.
Я начал работать над ней в качестве модели сущность-атрибут-значение, но у меня есть несколько проблем:
ли это будет влиять на производительность? Потому что пользователи должны иметь возможность поиска на основе некоторых уникальных атрибутов. Таким образом, не будет ли запрос через одну огромную таблицу влиять на производительность?
Один из моих атрибутов - «Animal» (уникальный для A & B), изначально я хотел иметь таблицу Animal и таблицу Breed (аналогично тому, как Location находится в собственной таблице для объявлений моделей DB) , Но я не могу представить, как я могу это сделать с помощью модели-сущности-атрибута.
Вот дизайн базы данных я придумал: http://i.imgur.com/jyV6Cjc.png
[Update]
После прочтения в наследство таблицы класса, это казалось более подходящим, чем модель EAV , поэтому я изменил свой EER к этому: http://i.imgur.com/JWPjt23.png
Работа объявление и объявление о продаже может быть классифицирован s «Looking For/Offering», но не было бы много различий в атрибутах, возможно, только их имена (например, цена против предпочтительной цены). Как вы думаете, нужно было бы добавить еще один уровень наследования здесь, или это будет хлопот?
Продажа Объявление может быть домашним животным на продажу, домашнее животное для принятия, с просьбой усыновления, с просьбой о покупке домашнего животного. Как вы думаете, я должен разделить их на два стола. Усыновление и продажа? Не было бы большой разницы в атрибутах, возможно, только в одном атрибуте.
Вы не указываете достаточно информации для аналитика данных, чтобы принять дизайнерское решение. У вас могут быть поля с нулевым значением в вашей таблице объявлений, если в течение этого времени поле не будет иметь значение null. Вы можете также иметь [сущность - атрибут - значение модели] (http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model) для уникальных полей. –
Спасибо, Гилберт, я добавил больше деталей, чтобы уточнить и задать свои вопросы. Можете ли вы взглянуть на редактирование и помочь мне? – Youmna