談談我對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   

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM