Добрый день!
Задача, с моей точки зрения, не такая тривиальная. Состоит в том, чтобы сделать поиск как в крупных интернет-магазинах, т.е. поиск с использованием системы фильтров с показом количества товаров при выборе этого фильтра.
Например вот этот магазин
http://www.zappos.com/mens-clothing~2S сразу видно, что при выборе бренда 2XU будет показано 32 товара (это посчиталось заранее). После выбора все параметры снова пересчитаются и будут отображать реальное положение дел, т.е. в
этих 32 товарах будет
24 черных
Отсюда возникает
2 вопроса:
1. Как организовать хранение данных
Когда-то я уже задавал вопрос
Чем плохо EAV решение для интернет-магазина?, но пока так и не выбрал способ, выбор между EAV и отдельной таблицей для каждого типа товара (товары могут быть совсем разные, и параметры могут быть тоже разные, например телевизоры, телефоны, одежда и пр)
2. Как собственно организовать такой фильтр
Сходу видится 2 решения:
- Загрузить все товары подходящие под фильтр в память и уже там посчитать будущие цифры с возможным выбором фильтра
- Сделать 300+ запросов в базу, для каждого параметра, чтобы узнать кол-во товаров с этим параметров
Есть конечно еще много не отвеченных вопросов (как разделить товары по типам, чтобы лишние параметры например для телевизора, не показывались при поиске куртки) и другие. Если кто знает книжку, или что почитать на эту тему буду благодарен. Хочется сделать действительно удобный интернет-магазин, а не плодить корявые каталоги.