Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Фильтры интернет магазина
|
|||
|---|---|---|---|
|
#18+
Добрый день столкнулся с задачей фильтров в интернет магазине . есть куча разных фильтров и куча категорий, человек дает запрос , что нужен телефон белый или черный и с памятью 2 или 4гб у меня таблица продуктов таблица фильтров, таблица параметров для каждого фильтра и таблица "продукт + фильтр" я написал вот в таком виде но чувствует мое сердце что если база прилично вырастит то начнутся тормоза . select a.id,a.title from products as a join products_param as b where a.id in( 14,20,12,15 ) and b.filter_param_id in (1 , 2 , 3 , 4) group by b.product_id having count(distinct filter_id) =2 ORDER BY FIELD(a.id , 14,20,12,15 ) или тоже самое только по фильтрам SELECT * FROM products_param WHERE filter_param_id IN (1 , 2 , 3 , 4) GROUP BY product_id HAVING COUNT(DISTINCT filter_id) =2 filters ====== 1 | color 2 | RAM filters_param ====== 1 | 1 | белый 2 | 1 | черный 3 | 2 | 4GB 4 | 2 | 2GB products_param ========== pproduct_id | filter_id | filter_param_id 10 | 1 | 1 11 | 1 | 2 12 | 2 | 3 13 | 2 | 4 Что можно или следует переделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 22:05 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39381492&tid=1831014]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 115ms |

| 0 / 0 |
