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


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

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

  • 相关阅读:
    S1 商品信息管理系统
    用例图
    mvc使用mongodb时objectId序列化与反序列化
    windows下检測文件改变
    【Android 开发实例】时间管理APP开发之数据库设计
    设计模式 之 原型
    ANT安装及配置
    Java环境变量设置
    Win7安装软件,界面上中文显示乱码的解决方案
    Some perl tips
  • 原文地址:https://www.cnblogs.com/melorogee/p/4826181.html
Copyright © 2020-2023  润新知