Разработка базы данных одежды - PullRequest
0 голосов
/ 02 мая 2020

Я собираюсь разработать веб-сайт eCommerce для одежды с пружинной загрузкой и спящим режимом, и во время проектирования базы данных я столкнулся с некоторыми запутанными проблемами, я начал с таблицы одежды, которая имеет некоторые свойства, такие как (имя, описание, цвет, ткань). , стиль .... и категория), категория может быть (обувь, брюки, капюшон ie ... et c), но вскоре я выяснил, что у каждой категории есть некоторые особые свойства, как у категории обуви есть тип каблука и длина руки для толстовки категории. Таким образом, у каждой одежды есть общие свойства, и у каждой категории есть свои особые свойства. Чтобы решить эту проблему, я думаю, у меня есть несколько вариантов:

  • создать одну таблицу, эта таблица будет иметь все свойства всех категорий, но в случае, если категория - обувь, поэтому все свойства связаны для всех остальных категорий будет нулевым.

  • создайте таблицу для каждой категории, в этом случае, если я решил изменить, например, размер имени свойства одежды, я должен изменить во всех таблицах

  • создать одну таблицу, которая имеет общие свойства, и таблицу для каждой категории, которая имеет специальные свойства, и связать между собой внешний ключ, например наследование в объектно-ориентированном программировании, в в этом случае запросы будут настолько сложными, и производительность будет снижена

Может кто-нибудь посоветовать мне, что я так растерялся. заранее спасибо.

1 Ответ

0 голосов
/ 03 мая 2020

Здесь вы можете использовать модель EAV Модель EAV

Создать следующие объекты:

 Clothe: (id, category_id [Foreign key to Category], name , description, style ..etc)
 Category: (id, type, ...any common field)
 Category Attribute: (id, category_id [Foreign key to Category], name, value)

Теперь вы можете добавить новую строку для каждой категории в Category_Attribute Таблица. Все настраиваемые поля для категории будут go до Category_Attribute таблицы с category_id из таблицы категорий.

Вам не нужно добавлять столбцы или иметь слишком много таблиц. Сохраняйте индексы идентификаторов и полей, которые запрашиваются, таким образом ваши запросы будут выполняться быстрее.

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