diafrag
7.03.2014 - 13:35
В общем, есть фильтр на сайте (интернет магазин):
- Более 100 параметров, 11 групп (цвет - группа, белый - параметр).
- Возможно в рамках группы добавлять параметры (выбрать белый и черный).
- В основном группы (в меню) скрыты, если не выбран параметр этой группы.
- При выборе параметра - страница грузится
Вопрос:
Подскажите, пожалуйста, оптимальный принцип подсчета количества совпадений по заданному параметру.
Сейчас "COUNT MYSQL" считает каждый параметр отдельно, то есть, до 100 соединений с базой. Занимает это все дело +-4 секунды. Понимаю, что так не делается.
Единственное, что пришло в голову:
Считать только те параметры, которые раскрыты, а потом AJAXом досчитывать, если пользователь откроет какую-то группу.
Но, если пользователь выберет в каждой группе по параметру - будет те же 4 секунды
Пример:
БРЕНД
бренд 1
бренд 2 (выбран)
ЦВЕТ
белый (выбран)
черный
МАТЕРИАЛ
СТРАНА_ПРОИЗВОДИТЕЛЬ
ФОРМА
Спасибо.
DedMorozzz
7.03.2014 - 13:49
честно говоря - не совсем ясно. Ну выбрал юзер параметры с цветом красным и брендом Самсунг...
И делается выборка по этим критериям. Что подразумевается под "оптимальной" выборкой. Не учитывать все критерии?
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
diafrag
7.03.2014 - 14:07
Цитата (DedMorozzz @ 7.03.2014 - 09:49) |
честно говоря - не совсем ясно. Ну выбрал юзер параметры с цветом красным и брендом Самсунг... И делается выборка по этим критериям. Что подразумевается под "оптимальной" выборкой. Не учитывать все критерии? |
например:
БРЕНД
nokia (выбран)
apple (считать красные нокии+красные apple)
sumsung (считать красные нокии+красные sumsung)
ЦВЕТ
красный (выбран)
желтый (считать красные нокии+желтые нокии)
синий (считать красные нокии+синие нокии)
зеленый (считать красные нокии+зеленые нокии)
фиолетовый (считать красные нокии+фиолетовые нокии)
http://b23.ru/84tf