面試題經常問道,如何設計庫存,哪些庫存呢?分類屬性的庫存:不同顏色 不同尺碼的屬性的庫存,這時候需要針對具體的SKU商品創建表。
總體思路
1.商品關聯商品類別,商品類別關聯多個商品屬性,其中指定某幾個商品屬性為SKU關鍵字段。例如,服裝類別的顏色、尺碼屬性。
2.多個SKU商品屬性值組合生成唯一的商品SKUID。例如,紅色、L=1001,黑色、L=1002。
3.有了商品唯一SKUID就可以方便記錄庫存了,庫存主鍵:倉庫ID,商品ID,SKUID,庫存精確到了組合的商品屬性。
優缺點
1.靈活,能夠應對各種行業商品的需求。
2.商品類別定義時很復雜,一般用戶使用起來有難度,可以預置常用的商品類別屬性模板解決。
===============================以下內容來自網絡================================================
商品模塊詳細設計
商品模塊是支撐整個架構的核心,如果這塊沒設計好,那么所有后期的復雜的統計需求基本都滿足不了。
為什么這樣子設計屬性看這里和這里,把品牌從類目中剝離出來是為了降低程序針對商品屬性這塊的復雜度。這里通過淘寶的添加寶貝的操作來說明上面的數據結構如何滿足下面的需求:
PS:本來要截玉蘭油沐浴露的圖,結果發現淘寶取消了以前選擇毫升*買的多送得多組合SKU的添加商品方式,改成了一個SKU就是一個寶貝的編輯手段,呵呵,沒辦法,只有上面截個衣服的圖,下面的數據卻是快消品的。淘寶這樣做這也是沒辦法的,這種快消品不同SKU,圖片還不能用一樣的,而且大部分用戶搜索的時候呢,會喜歡直接搜索具體的毫升數,這也給我們提了個醒,不同的類目可能會是不一樣的處理方式,就算是服裝這種SKU相對標准的類目,也會有說在展示和搜索結果中,會放置一個產品的多個SKU,比如凡客的網站,一件衣服的幾個顏色都會出現在類目搜索結果中,增加曝光度,吸引用戶點擊購買。
頁面屬性的編程實現可以參考這里。SKU存放在產品SKU表中,按我們的實際需求增加修改字段,比如我的表中多了ProductCode和BarCode字段,SKU的屬性會拆分后存入產品基本屬性值表,便於搜索或統計等需求。商品的基本屬性全部打橫存入商品的基本屬性表中,那么SKU表的存儲如下:
那么這個item是4013的產品在基本屬性值表中的數據存儲如下:
這里我是把所有的屬性都打成一條一條存儲在這個表中,那么能滿足我們在日常業務的屬性搜索,統計等需求。按屬性搜索,這里必須要注意以下幾點:
-
1.不可能所有的屬性都開放給用戶或者我們的客戶進行搜索,所以我們會在屬性名表中有個字段(是否搜索字段)來人工控制哪些屬性是搜索屬性
-
2.基本屬性是同一個寶貝下面所有SKU都共有的,SKU屬性是單個SKU獨有的,所以搜索的時候還必須分清楚銷售屬性(銷售屬性組成SKU)和基本屬性。
-
3.屬性圖片的存儲我並沒有設計,因為我們是做快消品,沒有這個需求。但是,如果我做的話我還會是在基本屬性值表中加上”是否圖片屬性,是否使用默認圖片,圖片URL“3個字段來記錄顏色屬性。做屬性搜索的時候比較方便。
-
4.產品通過關鍵字搜索和屬性搜索是分開的,兩種搜索並不是一種解決方式,比如淘寶,在首頁的搜索框是通過分詞匹配寶貝標題的關鍵字,通過關鍵字的匹配程度,店鋪的dsr評分權重來決定搜索結果,而屬性搜索的時候則是匹配滿足屬性條件的寶貝。那屬性又分第1點和第2點,所以還是挺麻煩的。