接着说一下,我们设计这个商品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   

版权声明:本文为博主原创文章,未经博主允许不得转载。