谈谈我对sku的理解(2)----数据库设计

接着说一下,我们设计这个商品sku发布功能时候的表设计

一.属性和属性值

首先,我们定义了最最基础的信息表属性表,和属性值表。

比如我现在需要一个16g的iphone,那么16g就是一个属性值,它对应的属性就是内存,可以这么理解。在这里我们没有引入像淘宝京东先分品牌的概念,而是把所有的这些信息,当做是一种属性来处理。

在表中可以看到,每个属性值需要关联属性表的主键。

属性表:

属性值表:

二.商品信息表

接着是我们的商品主表

这里我们的商品根据,根据需要列举这些列,可以注意到这里面并没有任何的属性。在后面可以看到商品和属性值之间是怎么通过sku而关联起来的

三:sku与属性值

在这里我们设置,是sku的id+属性id+属性值id来储存。那么相当于我有一个16g,土豪金的iphone,是需要两条数据的

skuid属性id属性值id

xxxxaabb(对应内存)aabb11(对应16g)

xxxxbbaa(对应颜色)bbaa11(对应金色)

在这里可以看到我们是这么处理的,通过一个skuid(xxxx)查到的所有数据组合起来就是一个sku。至于这些数据怎么生成,我们的方式是在配置商品的时候,如果选择了这些sku组合,则再生成这些数据,这样的问题是有可能我们发不同商品使用相同sku组合的时候生成了冗余的数据

四.商品和sku

上面已经解决了sku的储存,那么还没和商品关联上。下面这张表可以看的很明白实际就两列,商品id+skuid

上面例子我们有一条skuId为xxxx的16g金色的sku数据。

我们假设还有一条skuId为yyyy的sku数据为32g金色。

那么我们配置一个商品的时候,在商品和sku的表中就会有两条数据

商品idskuid

aaaa(iphone6)xxxx

aaaa(iphone6)yyyy

到这大家可以发现,上面第三条我提到的冗余数据,其实就是某一种sku针对特定商品时候的一个sku,而不是通用的,甚至可以将两张表合并起来在t_wd_sku_attr_value_relation中再加一个商品id。

这是我们当时的设计,也许有很多不足,但是带给我们很多思考,欢迎讨论更好的方案

下面一篇,就是看一下实现的页面以及其他。

转发请标明原地址http://techfoxbbs.com/thread-21655-1-1.html欢迎大家关注我们的公众微信TechfoxBBS

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