这是电商系统两个非常重要的概念,如果你能够理解这里面的关系网,会对你的代码思路更加清晰!
SPU和SKU
SPU:Standard Product Unit(标准化产品单元)
商品信息聚合的最小单元,一组可复用、易检索的标准化信息集合,该集合描述了一个产品的特性。
SKU:Stock Keep Unit(库存量单位)
库存进出计量的基本单元,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的 SKU号。换句话说,就是购买的最小单位。
例如小米11就是一个商品的最小单元,称之为SPU;而小米11 8G+128G就是一个商品的具体落实,称之为SKU;
引申出来的就有一个 基本属性[规格参数] 与 销售属性
基本属性
在京东小米11的详细页,我们可以看到一栏 ”规格与包装“,大致内容如下
而在 iPhone12的页面上,我们同样可以看到几乎相同的基本属性,只是属性值不同。
由此我们可以观察到这些 基本属性[规格参数] 与 “手机” 分类有关,而且是三级分类下的。
因此同一个分类下,不同的SPU基本属性字段相同,具体属性值不同。但同个SPU下,不同的SKU属性值是一样的。例如小米11和iPhone11都有机身长度,机身重量这些属性,但值不同。而对于小米11来说,8G和16G的机身重都是196g。
值得注意的是,属性较多我们一般还得整个分组,在上面的图中我们观察到了主体是个分组,里面放了入网型号,产品名称,上市年份,首销日期,上市月份。
销售属性
在小米11购买页中,你选择不同的SKU,价格和库存量等各自的特殊属性是不同的,这就是每个SKU的销售属性。
数据库设计
pms_category【商品三级分类】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
cat\_id | 分类id | BIGINT(19) | √ | 150 |
name | 分类名称 | CHAR(50) | 手机 | |
parent\_cid | 父分类id | BIGINT(19) | 12 | |
cat\_level | 层级 | INT(10) | 3 | |
show\_status | 是否显示[0-不显示,1显示] | TINYINT(3) | 1 |
pms_attr【商品属性】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例1 | 内容示例2 |
---|---|---|---|---|---|
attr\_id | 属性id | BIGINT(19) | √ | 120 | 210 |
attr\_name | 属性名 | CHAR(30) | 上市年份 | 库存 | |
value\_type | 值类型[0-为单个值,1-可以选择多个值] | TINYINT(3) | 0 | 0 | |
search\_type | 是否需要检索[0-不需要,1-需要] | TINYINT(3) | 1 | 0 | |
value\_select | 可选值列表[用逗号分隔] | CHAR(255) | 2020,2021 | 大量 | |
attr\_type | 属性类型[0-销售属性,1-基本属性,2-既是销售属性又是基本属性] | TINYINT(3) | 1 | 2 | |
enable | 启用状态[0 - 禁用,1 - 启用] | BIGINT(19) | 1 | 1 | |
catelog\_id | 所属分类 | BIGINT(19) | 150 | 150 | |
show\_desc | 快速展示【是否展示在介绍上;0-否 1-是】,在sku中仍然可以调整 | TINYINT(3) | 0 | 0 |
pms_attr_group【属性分组】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
attr\_group\_id | 分组id | BIGINT(19) | √ | 130 |
attr\_group\_name | 组名 | CHAR(20) | 主体 | |
sort | 排序 | INT(10) | 1 | |
catelog\_id | 所属分类id | BIGINT(19) | 150 |
pms_attr_attrgroup_relation【属性&属性分组关联】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
id | id | BIGINT(19) | √ | 140000 |
attr\_id | 属性id | BIGINT(19) | 120 | |
attr\_group\_id | 属性分组id | BIGINT(19) | 130 | |
attr\_sort | 属性组内排序 | INT(10) | 1 |
解读:上市年份为基本属性,归类在主体分组中,他们均属于150分类,即手机,在关联表是 120-130
pms_spu_info【spu信息】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
id | 商品id | BIGINT(19) | √ | 110 |
spu\_name | 商品名称 | VARCHAR(200) | 小米11 | |
spu\_description | 商品描述 | VARCHAR(1000) | 小米11牛逼 | |
catalog\_id | 所属分类id | BIGINT(19) | 150 | |
brand\_id | 品牌id | BIGINT(19) | 11111111 | |
publish\_status | 上架状态[0 - 下架,1 - 上架] | TINYINT(3) | 1 |
pms_product_attr_value【spu属性值】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
id | id | BIGINT(19) | √ | 190 |
spu\_id | 商品id | BIGINT(19) | 110 | |
attr\_id | 属性id | BIGINT(19) | 120 | |
attr\_name | 属性名 | VARCHAR(200) | 上市年份 | |
attr\_value | 属性值 | VARCHAR(200) | 2021 | |
attr\_sort | 顺序 | INT(10) | 1 | |
quick\_show | 快速展示【是否展示在介绍上;0-否 1-是】 | TINYINT(3) | 1 |
解读:有一个spu,名为小米11,它旗下有个属性为上市年份,属性值为2021
pms_sku_info【sku信息】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 内容示例 |
---|---|---|---|---|
sku\_id | skuId | BIGINT(19) | √ | 222 |
spu\_id | spuId | BIGINT(19) | 110 | |
sku\_name | sku名称 | VARCHAR(255) | 小米11 8G | |
sku\_desc | sku介绍描述 | VARCHAR(2000) | 小米11 8G牛逼 | |
catalog\_id | 所属分类id | BIGINT(19) | 150 | |
brand\_id | 品牌id | BIGINT(19) | 11111111 | |
sku\_title | 标题 | VARCHAR(255) | 小米11 8G | |
price | 价格 | DECIMAL(18,4) | 3999 | |
sale\_count | 销量 | BIGINT(19) | 10000 |
pms_sku_sale_attr_value【sku销售属性&值】
代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 |
---|---|---|---|---|
id | id | BIGINT(19) | √ | 211 |
sku\_id | sku_id | BIGINT(19) | 222 | |
attr\_id | attr_id | BIGINT(19) | 210 | |
attr\_name | 销售属性名 | VARCHAR(200) | 库存 | |
attr\_value | 销售属性值 | VARCHAR(200) | 9999999 |
看完这么多表,相信你已经懵逼了,其实这确实是相对比较绕和复杂,对后端代码也是个不小的挑战。
首先我定义了一个三级分类,id为150,叫做手机。
定义两个属性,id为120的是上市年份,为基本属性;210的是库存,为销售属性。
定义一个基础属性分组,id为130,名为主体,归在手机分类。
将130和120相关联,也就是将上市年份归在主体。
定义一个SPU,也就是商品 小米11 id为110
填写spu属性值,也就是让小米11的上市年份定义为2021
定义一个SKU,也就是购买单位,小米11 8G id为222
填写sku属性值,也就是小米11 8G的库存定义为9999999
最终结果,在手机分类下有一个基础信息分组-主体,主体下有上市年份,手机分类下还有一个销售属性-库存。定义一个小米11的SPU,一个小米11 8G的SKU,让小米11的上市年份定义为2021,小米11 8G库存定义为9999999。
版权属于:乐心湖's Blog
本文链接:https://www.xn2001.com/archives/628.html
声明:博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!