【线上商场】商品数据库逻辑整理

【线上商场】[数据库] 商品相关表格逻辑梳理

  • 基本概念
  • 商品表(SPU)和规格表(SKU)的设计
  • 总结

基本概念

  • 商品的SPU和SKU
    • SPU(Standard Product Unit ):指的是标准商品单位,商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个商品的特性;
    • SKU(Stock Keeping Unit):库存量单位,是物理上不可分割的最小存货单元。
    • 对于电商而言,SPU有一个唯一编码,一个SPU代表一个产品;SKU为一个产品不同属性、规格之间的编码。
    • 举个例子:比如说现在有个手机商品叫小米8,小米8有不同的属性,比如有它有黑色和蓝色的,有32G和64G版本的。此时小米8就是一个SPU,而小米8黑色64G就是一个SKU。

商品表(SPU)和规格表(SKU)的设计

  • 这个设计的核心难点在于:不同商品具有不同的属性,如何设计通用的存储方案?
  • 所有表格
表格 含义
商品分类表 商品的所有大类和小类(父类和子类)
商品表 SPU表
商品属性表 SKU表
商品属性key表 仅用于管理后台页面生成属性选项,管理员在发布新商品时勾选属性。
商品属性value表 仅用于管理后台页面生成属性选项,管理员在发布新商品时勾选属性。
  • 商品分类表:此表添加了parent_id字段,可实现无限层级的树状数据结构,parent_id=0表明当前为根节点,否则可使用递归算法来遍历分类下的所有子分类。

    • 这张表格或许不应该是一张表格,而应该是一个数据结构。
  • 商品表(SPU):是一个具体的商品,但是没有指定商品的属性。这张表应该存储该商品所有的公共属性。也就是原来的goods表中的属性基本上都应该放到这张表里面。

字段 含义
index /
商品大类 该商品的大类。
商品小类 该商品的小类。
goods表中的其他属性 ……
  • 商品属性表(SKU):针对每一个多属性的商品,几个不同属性的组合将有自己独立的库存价格信息
字段 含义
goods_spu_id 也就是商品ID
goods_sku_id 主键
属性1
属性2
属性3
库存 /
价格 /
销量 /
  • 商品属性key和属性value:为了存储一套SKU信息。
    这两个表作为商品分类的不同属性存储,在系统开始运营就需要做数据的初始化。日后运营人员如果要新增某一商品的SKU信息,就可直接根据数据库的这些基础数据选取,然后将属性再以json的形式存储到对应的规格表。

  • key

字段 含义
goods_attribute_id 主键
attribute_name 具体属性的名字,比如颜色、尺码、版本。
attribute_create_time /
attribute_update_time /

key

  • value:表格的名字叫做goods_attribute.
字段 含义
index 主键
goods_attribute_id 对应属性key表格中的id,也就是name的id。
goods_attribute_name 我们可以把两张表合成一张,直接把name也拿过来。
goods_attribute_value 具体的属性,如蓝色,XL等。
attribute_create_time /
attribute_update_time /

【线上商场】商品数据库逻辑整理_第1张图片

总结

商品相关的表格

  • 商品表 goods_spu
  • 商品属性表 goods_sku
  • 商品 goods_attribute
  • spu对应的是通用的sku
  • sku对应的是特定的属性
  • goods表中有goods_attribute_name_id_1这个属性,用于存储该商品对应的属性类型,如颜色、尺码等。不同的name_id可以有同样的name,这样可以区分不同种类商品对于同一个属性的需求,如不同的两件衣服对颜色这个属性的需求,可能一件衣服有红黑白色,另一件只有黑白两色。

你可能感兴趣的:(mysql,sql)