Если вы переходите на веб-сайт, такой как Newegg или B & H , когда они показывают список продуктов, есть несколько вариантов фильтров, таких как Бренд, Цена, Размер, Цвет и т. Д.
Каков хороший шаблон дизайна для чего-то подобного?
Также имейте в виду, что не все продукты имеют одинаковые параметры - монитор будет иметь максимальное разрешение и размер экрана, а жесткий диск -иметь емкость, тип подключения и т. д.
Единственное, о чем я могу думать, это использовать архитектуру EAV
в базе данных, чтобы связать все параметры фильтрации для каждого продукта, а затем при загрузке всех продуктов,вытяните все параметры и отобразите параметры фильтрации для соответствующих категорий.Это не похоже на то, что оно будет хорошо масштабироваться, и все еще заставляет меня задуматься, что мне делать, если только половина показанных продуктов имеет конкретную опцию (размер экрана).
product(id, name, price, etc.) // 1, "Cool Monitor", 200.00
filter_options(id, option) // 3, "Screen Size"
product_filters(product_id, filter_id, value) // 1, 3, "22.in"
Я не хочу изобретать велосипед или придумывать слишком сложное решение, если уже есть известный шаблон для чего-то подобного.Я предполагаю, что есть, так как я вижу это много в эти дни.
Если это имеет значение, я строю это на PHP, CakePHP 1.3, с MySQL.