zouber / Fanshop

1 stars 0 forks source link

構思如何達成兩層 "商品分類" #480

Open zouber opened 10 years ago

zouber commented 10 years ago

最近從數個淺在客戶(願意付費)中提到需要這個功能 值得花時間思考

zouber commented 10 years ago

整理目前的幾種備案:

A. 純字串式:實做方式是既有標籤加上分隔符號的限制來表示上下層關係,好比如果有一個商家要使用 上衣 當成第一層分類,夏天當作第二層分類的話,那麼這個分類在 db 裏頭會被儲存成 上衣__夏天,儲存的方式和原本的方式完全相同,只是在前端做額外處理,顯示出來讓 user 感覺她好像在編輯多層分類

優點:不需要大幅修改原有架構,只要用 js 當成中介即可完成,對於層數也沒有限制,可以無限制擴充分類可支援的層數

缺點:無法及時得知單一 vendor 的商品分類(類似現在的 maintag pool),每次都需要及時分析完所有mainatg 後做拆解才能得知,運算花費頗高,

B. link list 式:很老實的把每個第一層分類 第二層分類物件都開出來,並記錄每個第二層分類隸屬於哪個(或哪些) 第一層分類(即 parent 的概念)

優點:可以馬上得知單一 vendor 有哪些第一層分類和第二層分類,並且可以知道他們之間的從屬關係

缺點:每次要抓出整個分類樹狀圖都必須做多次的資料庫存取(除非做快取),目前每次點商品來編輯時都會去存取這個 vendor 的分類(以及之間的從屬關係),為了不要有任何延遲,我們目前這塊沒有快取,如果使用新的機制意味著每次都要重新計算樹狀圖,蠻耗費資料庫存取資源

另一個缺點就是必須大幅更改目前的資料庫架構