大家好,又见面了,我是你们的朋友全栈
1、SPU介绍 SPU = Standard Product Unit(标准产品单元) SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗的讲,除去规格信息以外的,属性值、特性相同的商品就可以归类到同一个SPU里面。
2、SKU介绍 SKU = Stock Keeping Unit(库存量单元) SKU是库存进出计量的单元,可以是以件、盒等为单位,是物理上不可分割的最小存货单位,是一款具体规格的产品。通俗的讲,SKU是指一款商品,每款都有一个SKU,便于电商系统识别商品。
接下来以手机为例子来详细的说明这两个概念。
比如HUAWEI Mate 30 Pro这个手机,它有一些 “规格” 可以选择,这里还有 “颜色” “版本” “套餐” 三种规格可以选择,对于指定全部具体的规格信息的一个Mate Pro手机,比如 “‘星河银’ ‘8G 256G’ ‘优惠套装1’的Mate 30 Pro”这些选定的规格信息集合就是一个SKU。 而抛去这些具体规格信息表示Mate 30 Pro 手机这一类产品的信息集合就是一个SPU,这一类产品有一些不是规格信息的共同属性,比如CPU型号:麒麟990、摄像头数量、主屏幕尺寸、操作系统等等。
3、商品详情数据库表设计 在我的电商系统中按照上面的设计理念,将数据表分成了spu表、sku表、规格表、规格值表、sku规格选项表
还是以HUAWEI Mate 30 Pro这个手机为例,这个商品有一些选项,比如优惠卷、促销信息、增值业务、库存状态、物流信息、重量、服务支持、套餐、增值保障、京东服务、白条分期、累计评价数
上述信息可以分成两类,1. 一个值的,比如价格、质量;2. 多个值的,比如颜色、版本、图片、增值保障
我们拿这个手机的部分信息来详解在数据库中是怎么存储这些信息的,取一个值的比如商品名称,多个值的取两个颜色和版本。用一个列来存储商品的一个属性数据,最后得到如下的数据表。
那上面这张表存在什么问题呢?
数据的冗余
怎么解决?
分表
怎么分?
spu表、sku表、spu和sku的关系保存在sku表中
spu表中存储的是共有的属性,所以把像商品的名称这样的单一值存在这张表中。
sku是对一个订单商品的详细信息的描述,所以像类似于价格这样的信息应该存在这张表中。通过外键来关联spu表中的商品。
为了数据库表结构数据的不冗余,将sku中的规格选项分成规格信息、规格选项信息、sku规格选项表三张表。
如此,我们的数据库表结构就设计完成了。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179220.html原文链接:https://javaforall.cn