商品表(spu) 規格表(sku)設計

2022-06-01 22:33:13 字數 1504 閱讀 8307

這裡拿iphone6s舉例,它身上有很多的屬性和值, 比如:

spu 指的是商品(iphone6s),spu屬性就是不會影響到庫存和**的屬性, 又叫關鍵屬性,與商品是一對一的關係,比如:

sku指的是具體規格單品(玫瑰金 16g),sku屬性就是會影響到庫存和**的屬性, 又叫銷售屬性,與商品是多對一的關係,比如:

所以iphone6s則會生成 3 * 3 = 9 個 sku

此表採用無限層級樹狀資料結構,程式使用遞迴演算法來遍歷分類下的所有子分類,parent_id是父級分類, parent_id=0時說明是根節點, 屬於一級類別; 如使用遞迴查詢出100034包含100037子類別,依次類推,這樣就構成乙個可以無限擴充套件的數字結構;

2. 商品表 mmall_product(也稱spu表)

spu表中關鍵字段是category_id和attribute_list兩個字段:

category_id 記錄這個商品屬於哪個分類, 用於通過分類進行商品搜尋;

attribute_list 記錄的是所有屬性集合,這個字段採用json格式儲存,便於前端解析;前端解析後可以在頁面顯示出商品的所有屬性, 使用者點選選擇出屬性組合後,前端可以拼接成這樣的json格式加上商品id在(商品規格表 mmall_product_specs)查詢到具體的單品,隨即獲取到具體單品的庫存和**等資訊;

3. 商品規格表 mmall_product_specs(也稱sku表)

sku表儲存的是具體的單品資訊,比如具體規格的庫存和**等,核心欄位是product_id和product_specs,product_id 記錄的是spu表中的商品id,product_specs 記錄的是該單品具體的屬性值(規格值);

4. (屬性key表 mmall_attribute_key)和(屬性value表-mmall_attribute_value)

屬性key表和屬性value表僅用於管理後台頁面生成屬性選項,管理員在發布新商品時勾選屬性,方便規格的錄入和保證正確性;

這裡我使用了兩張橫表spu表和sku表實現不同商品的儲存,spu表使用attribute_list欄位儲存屬性集合,查詢時使用product_id和product_specs去sku表中獲取的具體的單品資訊, spu表中可以增加一些商品的公共資訊字段,例如名稱、發布的商家、發布日期、上架狀態, sku表中增加一些每個單品不同的字段,比如不同的單品有不同和名稱或者詳情說明等等,反正根據業務進行擴充套件

總結, 上述資料表設計方案適用於商品類別差異不是很大的情形,通過表的字段可以發現不同的商品之間變化的資訊只有 attribute_list欄位, 而這個字段通過json來儲存各種不同的屬性集合, 同樣sku表中變化的字段只有 product_specs 也是通過json來儲存各種不同屬性組合。

核心思路就是把彈性字段使用json儲存,這樣設計的優點是資料表結構穩定,不用在商品增加屬性後增加字段, 缺點是商品資料的解析複雜,彈性字段需要在業務**中進行處理,增加了業務**的複雜度。

商品表(spu) 規格表(sku)設計

這裡拿iphone6s舉例,它身上有很多的屬性和值,比如 spu 指的是商品 iphone6s spu屬性就是不會影響到庫存和 的屬性,又叫關鍵屬性,與商品是一對一的關係,比如 sku指的是具體規格單品 玫瑰金 16g sku屬性就是會影響到庫存和 的屬性,又叫銷售屬性,與商品是多對一的關係,比如 ...

sku商品表設計

表關係 分類表 商品表 sku表 庫存表 分類表 屬性名 屬性值 商品表 商品和屬性關係表 屬性名 屬性值 業務邏輯 1.同一商品不同sku庫存和售價不同.2.不同型別的商品具有不同的屬性名和屬性值 如汽車和服飾 所以屬性需要支援後期新增和維護.3.在某個商品分類下通過屬性篩選商品.4.商家某件商品...

商品的SPU和SKU

spu standard product unit spu即標準商品單元,是描述某乙個商品的特性屬性集合。和商品的關係是一對一的關係,比如榮耀10手機,如圖所示 以上的引數都是榮耀10的商品特性 機身長度 寬度 厚度 等,它是乙個商品的固有屬性。sku stock keeping unit sku就...