接着說一下,我們設計這個商品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
版權聲明:本文為博主原創文章,未經博主允許不得轉載。