Java生鲜电商平台-商品的spu和sku数据结构设计与架构
1. 先说明几个概念.
电商网站采用在商品模块,常采用spu+sku的数据结构算法,这种算法可以将商品的属性和商品的基本信息分离,分开维护,这样我们就可以在不同的类目下自定义商品信息和分类的属性信息,我们的业务系统就可以存储不同门类的商品信息了
•SPU = Standard Product Unit
(标准化产品单元)SPU是商品信息聚合的最小单位,是一组可复用标准化信息的集合
•SKU=stockkeeping unit
(库存量单位)SKU即库存进出计量的单位,可以是以件、盒、托盘等为单位
•SKU、SPU与分类属性之间的结构关系如下图
- 基础属性
指设计在商品表的一些基础字段。
其中可选的设计点有:
# 副名称:由于商品名称经常要加上一些促销信息,如本商品参与什么活动之类。但经常改动主名称
容易导致出错,所以增加此字段来专门管理促销信息。显示时连接到主名称后即可。
# 产品描述:产品描述建议另设计一表存放,对提高产品搜索、产品列表显示有帮助。
# 状态:常见的状态有草稿、未发布、发布、下架等,如果是逻辑删除的,还有“已删除”状态。 - 价格
如果系统支持产品SKU,那么实际价格是在产品SKU实体中管理的。
促销价格不在这里管理,在营销管理模块统一管理。 - SEO相关
集中管理各类SEO相关的信息。 - 商品媒体
#主图:由于显示频繁,会直接设计在产品表中(或是冗余)。
#多图(即附图):开发中会提供多种查看方式。 - 扩展属性
这是设计最困难的部分,也是商品是否可以灵活扩展的关键。 - 库存
库存这里是常见的开发迭代点。
在研发早期,一般这里直接设计成支持零库存和单一数值库存。
在其它功能完成后,才会对这里做扩展,开发内嵌的库存子模块或者整合外部系统。 - 外部关联
商品的外部关联非常的多,这里列出了大部分,但随着系统的扩展,肯定会有新的外部关联实体。
所以商品模块的开发,需要提供大量的外部接口或者Tag封装(如商品选取器等。)