码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-09-21 15:54:59      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:数据库设计   iphone   淘宝   信息   京东   

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

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


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

标签:数据库设计   iphone   淘宝   信息   京东   

原文地址:http://wufanxin.blog.51cto.com/7318130/1696753

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!