Im пытается изменить алгоритм фильтра для моего списка продуктов.Фильтр продуктов для электронной коммерции
Например, у меня есть 2 телевизора.
Первый: экран размером 117 Cm, бренд Samsung. Второй: размер экрана 203 CM, марка Sharp.
И у меня есть следующие фильтры:
Марка: Samsung, Sharp
размерэкрана: 117 Cm, 203 CM
Если я хочу видеть только Samsung телевизоры и проверить фильтр Samsung , как я могу прийти к выводу, что я должен удалить размер экрана 203 из фильтров, потому что у samsung есть только 117 см телевизора.
Но если я проверю четкое телевидение и samsung в одно и то же время, тогда я должен увидеть оба фильтра размера экрана.
Я прошу идею для некоторого алгоритма php/mysql.
Надеюсь, вы понимаете, о чем я спрашиваю.
Для примера смотрите здесь: http://www.ebay.co.uk/sch/Televisions-/11071/i.html?_dcat=11071&Display%2520Technology=LED%2520LCD&rt=nc
Сайт знает, сколько продуктов он имеет иметь в своем распоряжении пользователя проверяет любой фильтр: например: «40» - 49" (326)) -> они знают, что у них есть 326 продукты до проверки пользовательских фильтров
Короче:. флажки вы проверить в фильтрах, должны быть отключены, если комбинация не доступна для продуктов
у меня есть 3 таблицы:. продуктов (id_product, имя), фильтры (id_filter, name, id_category), filters_values (id, id_product, id_filter, value)
На моей странице product_list должно появиться только фильтр, который после проверки возвращает продукты.
Моя первая мысль - сделать sql из каждой комбинации значений фильтра. Например, 10 фильтров с 4 значениями: 40 кв., Чтобы проверить, не возвращают ли продукты продукты. Но это способ сильно подчеркнуть db.
Например, если у меня есть один фильтр с 4 значениями, я должен сделать 4 запроса, чтобы посмотрите, есть ли у меня продукты по определенному значению.
У меня есть 10 фильтров, каждый из которых имеет 4 значения, я должен выполнить 40 sql-запрос. Который много. Как я могу сделать это быстрее?
Благодаря
Что такое расположение таблиц? Каковы данные в таблицах (образец)? И какие результаты вы ищете? –
. , Измените свой вопрос вместо того, чтобы помещать эту информацию в комментарий. –