2011-05-23 96 views
0

如果你去像NeweggB&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。

回答

1

使用的規範模式。它是爲此而構建的。

雖然我找不到一個好的php實現。但建立起來應該不那麼難。