Как использовать фильтры?

Необходимо сделать много фильтров для интернет магазина. Ну там по качеству, по размеру, по цвету и так далее. Как их построить и организовать. Я имею ввиду в базе. Используется mysql. Мысль есть сделать следующим образом: таблица filters и в ней создаю фильтр, например, color и значения чего: черный, красный, зеленый. Получается:
filter -таблица
color - поле, и в нем значения черный, красный, зеленый через запятую.
При добавлении товара видим этот фильтр с выбором этих цветов. И вот тут как записать к товару, чтобы привязать вывод этого фильтра и его значения? Товары в таблице items. Если мысль там сделать поле filter куда записывать id созданного фильтра. А вот само значение фильтра куда записывать? Help. Как лучше сделать? Гуглил.
  • Вопрос задан
  • 401 просмотр
Пригласить эксперта
Ответы на вопрос 3
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
Если вам нужно гибкое универсальное решение, то это будет хоть и сложно, но возможно.

Со стороны UI:
- Создается категория
- Для категории создаются разные типы фильтров
- Добавляются товары в категорию
- Все товары теперь имеют фильтры своей категории
После чего в каждом товаре заполняются данные фильтров: размер, вес, цвет и т.д.

Фильтры могут быть разных форматов: диапазон, значение, несколько значений и т.д. Так сразу все не вспомню. Можно сделать привязку фильтров как к категории, так и к товарам. Создали фильтр типа "значение", назвали его "color", привязали его к категории "обувь". После чего все товары в этой категории получили характеристику "color" которая индивидуально для каждого товара должна быть заполнена, и по которой будет идти фильтрация.

В общем это сложное решение, возможно вам нужно что-то проще.
Ответ написан
Комментировать
Сделать свойства у товара(столбцы): цвет, фактура и т.д. Тогда простым SQL запросом получать данные.
Если речь идет о цветах одного товара, то сделать таблицу colors с полями id товара, значение

Или универсальный совет: не надо создавать велосипед. На рынке есть множество интернет магазинов. Как платных, так и бесплатных. Их "допилить" будет проще
Ответ написан
Не до конца понимаю вашу проблему. Такое ощущение, что вы все делаете наоборот. Вам же фильтры нужно сделать по характеристикам товаров? Эти характеристики уже наверное как-то хранятся у вас в базе? Если хранятся, то их и нужно использовать, зачем к товару привязывать какой-то фильтр еще? Ваши данные о товарах должны храниться так, будто у вас нет никаких фильтров.
Вот у вас таблица Items что из себя представляет? Там уже есть в каком-либо виде характеристики товаров? Может быть они еще в каких-то таблицах?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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