Как сделать фильтры на каждый товар в интернет магазине?
Например, есть часы, у которых есть такие особенности как: производитель, диаметр циферблата, тип (спорт, мода...), материал ремешка и т.д.
А также есть джинсы, у которых всё совсем другое (цвет, длина, сезон и т.д.).
Неужели придётся создавать много таблиц в БД для каждого товара в отдельности, и в них добавлять колонки для каждого вида товара?
Все перечисленное хранится в дополнительных характеристиках товара, при выводе списка товаров категории строится фасетный фильтр, включающий только характеристики, что имеются у товаров этого списка. Для всех характеристик определяется тип значения : число, диапазон, флаг (boolean) и ожидаемое количество значений. На основе этого подбирается ui-компонент в фильтре: простой список выбора из возможных виде группы чекбоксов, или что чаще, выпадающий список, слайдер для диапазонов, шкала которого рассчитывается из максимального и минимального значения характеристики в данном списке товаров, чекбокс для бинарных характеристик, радиокнопки для взаимоисключающих
Можно создать одну таблицу, где будут общие элементы (цена, производитель, название и т.д.). И добавить поле для подключение других параметров. Для каждой категории товара создавать таблицы с дополнительными полями.
а если на сайте будет еда. Там ведь может не быть производителя, и точно не будет ограничения по полу возрасту и цвету (как на одежду, например)(во всяком случая у меня).
Общее между телефоном и картошкой (например) это цена. Лишь она может быть у всех (бартера, слава Богу, нет...).
Вам сначала надо определиться, с какими товарами Вы будет работать, а уже от этого и плясать в сторону проектирования базы данных. У всех товаров могут быть параметры. У той же картошки страна, производитель, размер клубня, цвет, плотность, % крахмала итд итд. Я не думаю что Вы будете заниматься одновременно картошкой и сотовыми телефонами =)