談談我對sku的理解(2)----數據庫設計

接着說一下,我們設計這個商品sku發佈功能時候的表設計

一. 屬性和屬性值
首先,我們定義了最最基礎的信息表 屬性表,和屬性值表。
比如 我現在需要一個16g的iphone, 那麼16g就是一個屬性值,它對應的屬性就是內存,可以這麼理解。在這裏我們沒有引入像淘寶京東先分品牌的概念,而是把所有的這些信息,當做是一種屬性來處理。
在表中可以看到,每個屬性值需要關聯屬性表的主鍵。

屬性表:   
 

屬性值表:
 

二.商品信息表
接着是我們的商品主表 
這裏我們的商品根據,根據需要列舉這些列,可以注意到這裏面並沒有任何的屬性。在後面可以看到商品和屬性值之間是怎麼通過sku而關聯起來的
 

三: sku與屬性值
在這裏我們設置,是 sku的id+屬性id+屬性值id來儲存。那麼相當於我有一個16g,土豪金的iphone,是需要兩條數據的
skuid     屬性id     屬性值id
xxxx      aabb(對應內存)        aabb11(對應16g)
xxxx      bbaa(對應顏色)        bbaa11(對應金色)

在這裏可以看到我們是這麼處理的,通過一個skuid(xxxx)查到的所有數據組合起來就是一個sku。至於這些數據怎麼生成,我們的方式是在配置商品的時候,如果選擇了這些sku組合,則再生成這些數據,這樣的問題是有可能我們發不同商品使用相同sku組合的時候生成了冗餘的數據
 

四.商品和sku
上面已經解決了sku的儲存,那麼還沒和商品關聯上。下面這張表可以看的很明白實際就兩列,商品id+skuid
上面例子我們有一條skuId爲xxxx 的  16g 金色的  sku數據。
我們假設還有一條 skuId爲yyyy的sku數據爲 32g 金色。
那麼我們配置一個商品的時候,在商品和sku的表中就會有兩條數據

商品id                               skuid
aaaa(iphone6)            xxxx
aaaa(iphone6)            yyyy


到這大家可以發現,上面第三條我提到的冗餘數據,其實就是某一種sku針對特定商品時候的一個sku,而不是通用的,甚至可以將兩張表合併起來在t_wd_sku_attr_value_relation中再加一個商品id。
 

這是我們當時的設計,也許有很多不足,但是帶給我們很多思考,歡迎討論更好的方案

下面一篇,就是看一下實現的頁面以及其他。


轉發請標明原地址http://techfoxbbs.com/thread-21655-1-1.html 歡迎大家關注我們的公衆微信   TechfoxBBS   

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章