Фильтры товаров интернет-магазина

Alexandre

PHPПенсионер
моя только маленькая невидимая часть
сейчас кое что переделываю
 

Активист

Активист
Команда форума
Может вопрос не в этот тред, но всеже, всегда было интересно, как хранятся данные разных свойств товаров с бд? Неужели на каждое свойство товара совой столбец? Если общее количество свойств разных товаров 80? 100? 500? 500 столбцов?

Я лично организовывал так, делал в БД товаров количество столбцов N, где N максимальное количество свойств из всех групп товаров, при этом, на кажду группу товаров задавал название и количество столбцов с параметрами.

Но чувствую это как-то не правильно, запросы громоздкие получаются, и при этом не самые быстрые.
 

pilot911

Новичок
зайди в демо http://phpshopcms.com/ - там неплохо сделано



Кажой категории должен соответствовать свой набор свойств - линкуешь их через таблицу

Таблица "Свойство-Категория"
id
category_id
property_id


Каждому свойству должен соответствовать свой набор значений

Таблица "Значение-Категория"
id
property_id
value_id


А сам набор значений хранится в общей таблице типа

Таблица "Значение"
id
value_type_1 DECIAML(14,5) # для цифровых значений
value_type_2 TEXT # для текстовых



После этого, задаешь товару принадлженость к категории и товар связывается с этими свойствами через таблицу

Таблица "Товар"
id
property_id
value_id
 

Alexandre

PHPПенсионер
Может вопрос не в этот тред, но всеже, всегда было интересно, как хранятся данные разных свойств товаров с бд? Неужели на каждое свойство товара совой столбец?
конечно нет, есть таблицы
Товары
Параметры
Свойства

Связные таблицы:
Товары - Параметры
Товары - Свойства

Свойства - Параметры

-~{}~ 17.04.09 12:15:

Я лично организовывал так, делал в БД товаров количество столбцов N, где N максимальное количество свойств из всех групп товаров, при этом, на кажду группу товаров задавал название и количество столбцов с параметрами.
я всречал проект построенный по такому принципу: так там решили забиться по максимум и в таблице было около 1000 полей
База висла не слабо пр небольшой нагрузке. так что твой подход может быть не правильным
 
Сверху