@inavpetrov194

Как сделать базу данных с технические характеристики разных товаров?

есть три таблицы:
  • товар;
  • производитель (бренд);
  • категория (ноутбуки, планшеты, моноблоки).

Куда вставить тех. характеристики? cba43b4e136a42d0bd926c8b556ab0c4.jpg
  • Вопрос задан
  • 3381 просмотр
Пригласить эксперта
Ответы на вопрос 3
@IceJOKER
Web/Android developer
Легкий путь - визуальный редактор и одно поле ОПИСАНИЕ - very bad solution

Другой - Создать еще одну таблицу со всеми возможными полями для характеристик и в зависимости от категории товара заполнять то или иное поле , а дефолт NULL -- это способ удобен для фильтра товара.

Еще другой способ - несколько таблиц для каждой категории товара - по-моему тоже bad solution
Ответ написан
Комментировать
dizballanze
@dizballanze
Software developer at Yandex
Если нужно иметь возможность задания разного набора характеристик для разных категорий товаров и эти категории добавляются динамически (например, в админке), то можно посмотреть EAV. Однако в этом случае вероятно использование NoSQL будет разумнее.
Ответ написан
Комментировать
- Нереляционные СУБД позволили бы вам это делать, но взамен вам придётся заплатить невозможностью использовать внешние ключи, контролем целостности и прочими возможностями реляционных СУБД.
- Постреляционные СУБД (OrientDB, скажем) умеют такое и имеют контроль целостности, но с ними ещё разбираться надо. Сообщество не так уж велико.
- На мой взгляд оптимальное на данный момент решение - использовать PostgreSQL, все разновидности товаров вести в одной таблице, а для специализированных атрибутов, специфичных для категорий, создать один столбец data типа HStore, который хранит массив вида ключ-значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы