@zugo

Как при использовании EAV сделать добавление полей по категориям?

Хочу написать простой интернет-магазин (на Yii). Разумеется, у товаров должны быть произвольно добавляемые поля, для чего используется паттерн Entity-Attribute-Value. Как правильно сделать так, чтобы типы полей привязывались к категориям, а значения - к конкретным товарам?
Т.е., допустим, админ сайта, создавая карточку товара, выбирает категорию (допустим, грубо говоря, "жесткие диски"), и появляются поля, специфичные для данной категории ("объем", "скорость вращения шпинделя" и т.д.), и заполняются конкретно для этого товара. А названия/типы полей должны указываться при создании/редактировании категории, а не товара.
  • Вопрос задан
  • 2672 просмотра
Пригласить эксперта
Ответы на вопрос 2
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Реляционная MySQL в вашем случае не лучший вариант, точнее вообще неподходящий. EAV - это антипод наличия схемы данных, а без схемы вам в NoSQL, или, самый простой и быстрый и полный вариант - Postgres с jsonb и индексами по нему.
Ответ написан
@goran1301
веб программист
Я делал так:
Есть таблица с разделами, есть с товарами и есть со значениями свойств товаров.

У товаров и свойств есть поле с id раздела, по которому они связаны. А в таблице со значениями свойств товаров есть поля для id товара и id свойства.

Позже добавил ещё таблицу со списками и значениями списков, чтобы можно было выбирать значения из заготовленных. В итоге значения свойств товаров стали ссылаться ещё и на значения списков.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы