在商城網站系統開發中,商品列表篩選是很重要的。當遇到屬性層級達到10+甚至更多層。比如手錶類的商城網站:
屬性有:品牌,價格,機芯,性別,顏色,材質,直徑。。。等等(假設有500個屬性)。
需要達到的效果:當選擇某1個屬性條件時,顯示出商品列表,並且商品結果中(沒有滿足這些商品的屬性需要變灰或者剔除)
思路:
1. 做緩存,將500個屬性遍歷下,結果數大於3000個的緩存起來屬性數據。(這一步估計只有50個屬性滿足條件)
2. 將上面的50個屬性與其他的250個屬性(肯定小於250個的)相乘篩選(即and條件篩選),再將結果數大於3000的緩存起來。
3. 以此類推將可所有篩選條件緩存起來即可。
當搜索條件滿足以上緩存則輸出,否則直接讀數據庫查詢。
表設計:一個表500個字段(所有屬性作爲列,長度值爲1即可)