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

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
1Dmitry
Сообщения: 254
Зарегистрирован: 2013.05.08, 20:27
Откуда: Украина

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

Сообщение 1Dmitry »

Как правильно сделать каталог товаров? Допустим есть таблица с товарами:

Код: Выделить всё

product_id, category_id, title, image, manufacturer
-сейчас точно известно что пользователю понадобится заполнять название товара, группу, его картинку и производителя. А как быть с теми полями которые для разных товаров будут разными, допустим у холодильников будет атрибут высота и цвет, а газовых плит тип подключения, это как-то можно реализовать, что бы пользователь мог динамически добавлять эти поля?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Как правильно спроектировать бд для каталога с фильтром?

Сообщение vova07 »

EAV
Да, этот вопрос неоднократно поднимался на этом форуме, погуглите чуток.
Bloom
Сообщения: 313
Зарегистрирован: 2013.02.25, 12:57

Re: Как правильно спроектировать бд для каталога с фильтром?

Сообщение Bloom »

Тут еще смотря какие свойства будут, какие значения они будут хранить. Будет ли предопределенный список возможных значений?
Bloom
Сообщения: 313
Зарегистрирован: 2013.02.25, 12:57

Re: Как правильно спроектировать бд для каталога с фильтром?

Сообщение Bloom »

EAV не сильно хороша, если у вас этих свойств будет сильно много.
Будет очень сильное непонимание того, как оно все работает. Возможность допустить ошибку в коде - слишком велика. Возможно, если каталог включает в себя не так много "продуктов" - стоит обратить внимание на наследование моделей. Определить одну с общими полями, а потом от неё наследовать другие, которые будут более детально раскрывать свойства каждого продукта.
Если вариация продуктов слишком высока и они вообще никак не будут связаны - автомобили, стиральные машины и планшеты - я бы посоветовал глянуть в сторону MongoDB. Для Yii есть очень хорошее расширение для работы с этой базой данных.
Ответить