如果你去像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構建這個PHP,CakePHP 1.3。