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

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

一. 属性和属性值
首先,我们定义了最最基础的信息表 属性表,和属性值表。
比如 我现在需要一个16g的iphone, 那么16g就是一个属性值,它对应的属性就是内存,可以这么理解。在这里我们没有引入像淘宝京东先分品牌的概念,而是把所有的这些信息,当做是一种属性来处理。
在表中可以看到,每个属性值需要关联属性表的主键。

属性表:
[img]http://techfoxbbs.com/data/attachment/forum/201509/18/194600j7fozlys3blb3oqf.png[/img]

属性值表:
[img]http://techfoxbbs.com/data/attachment/forum/201509/18/194620itv3ezj7mkbhn5cb.png[/img]

二.商品信息表
接着是我们的商品主表
这里我们的商品根据,根据需要列举这些列,可以注意到这里面并没有任何的属性。在后面可以看到商品和属性值之间是怎么通过sku而关联起来的
[img]http://techfoxbbs.com/data/attachment/forum/201509/18/194639xish8boay5md238a.png[/img]

三: sku与属性值
在这里我们设置,是 sku的id+属性id+属性值id来储存。那么相当于我有一个16g,土豪金的iphone,是需要两条数据的
skuid 属性id 属性值id
xxxx aabb(对应内存) aabb11(对应16g)
xxxx bbaa(对应颜色) bbaa11(对应金色)

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

[img]http://techfoxbbs.com/data/attachment/forum/201509/18/194701d0dbrf90039bfc8x.png[/img]
四.商品和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。

[img]http://techfoxbbs.com/data/attachment/forum/201509/18/194722ft64p48lcb23t6r3.png[/img]
这是我们当时的设计,也许有很多不足,但是带给我们很多思考,欢迎讨论更好的方案

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

转发请标明原地址http://techfoxbbs.com/thread-21655-1-1.html 欢迎大家关注我们的公众微信 TechfoxBBS
版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
购物商城的Spu-Sku数据库设计主要是为了管理商品的库存和销售信息。Spu(Standard Product Unit)是商品的标准产品单位,通常指的是一组具有相同特征但可能有不同规格的商品,例如同一款衣服的不同颜色或尺码。Sku(Stock Keeping Unit)是商品的库存管理单位,是对Spu的具体细分,用于区分不同规格或属性的商品。 在数据库设计中,可以建立两个主要的表:Spu表和Sku表。Spu表用于存储商品的基本信息,包括商品的名称、描述、品牌、分类等。此外,可以为Spu表添加一些扩展字段,例如商品的图片、销售状态等。 Sku表用于存储商品的具体规格和库存信息,其中包括Spu的外键关联、商品的属性、规格、价格和库存数量等。通过外键关联,可以将Sku与其对应的Spu关联起来,实现Spu与Sku的多对一关系。同时,可以在Sku表中添加一些扩展字段,例如商品的条形码、上架时间等。 为了提高查询效率,可以在Sku表中添加索引,例如根据商品的价格、库存数量、销售状态等字段进行索引,以快速获取满足条件的商品信息。 此外,为了提高系统的可维护性和可扩展性,可以添加一些辅助表,例如属性表和属性值表,用于管理商品的属性信息。属性表用于存储商品的属性名称,属性值表用于存储属性的具体取值范围。 总之,购物商城的Spu-Sku数据库设计需要考虑Spu和Sku之间的关联关系,以及商品的基本信息和规格信息的存储和管理。通过合理的设计和优化索引,可以提高系统的查询性能和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值