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

Добрый день

Имеются следующее таблицы:

Таблица ELEMENTS,которая содержит название и описание товара и т.д.
Таблица OFFERS в которой содержатся торговые предложения: element_id, title, price и т.д. (у товара может быть несолько вариантов с разными ценами).
Таблица FEATURES содержит свойства: id, title.
Таблица ELEMENTS_FEATURES, которая содержит значения свойств элемента: element_id, feature_id, value.

Как правильно соединить таблицы чтобы можно было организовать фильтр товаров по нескольким свойствам сразу?
Получается нужно соединить ELEMENTS и ELEMENTS_FEATURES, но у меня получился только поиск по одному свойству.
Может значение свойств лучше хранить в виде текста в таблице ELEMENTS, и выполнять поиск через регулярное выражение?

Спасибо
  • Вопрос задан
  • 3194 просмотра
Пригласить эксперта
Ответы на вопрос 2
Можно, используя join'ы
SELECT * FROM ELEMENTS LEFT JOIN ELEMENTS_FEATURES ON ELEMENTS.ID = ELEMENTS_FEATURES.ELEMENT_ID JOIN FEATURES  ON FEATURES.ID = ELEMENTS_FEATURES.FEATURES.ID WHERE <УСЛОВИЯ ПОИСКА>
Ответ написан
Rpsl
@Rpsl
Кратко о себе
Перегоняйте все объекты в Sphinx и делайте поиск по нему.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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