
对于一个商品,主要分类如图上几个表,SPU有一组属性,SKU有一组属性,只不过SKU的属性为销售属性,也可以称之为规格,SKU跟规格是一对多,也就是一组规格决定了某个SKU的价格和库存,图中少了库存的字段,下面的字段列举已经加上。
1. category 表(商品分类表)
| 字段名 |
字段类型 |
主键/外键 |
说明 |
| id |
int |
主键 |
商品类别ID |
| name |
varchar(50) |
|
类别名称 |
| parent_id |
int |
|
父分类 ID(层级关系) |
| sort |
smallint |
|
排序,数字越小越靠前 |
| create_time |
datetime |
|
分类创建时间 |
2. attribute 表(商品属性表)
| 字段名 |
字段类型 |
主键/外键 |
说明 |
| id |
int |
主键 |
属性唯一标识 |
| name |
varchar(50) |
|
属性名称(如“颜色”“尺寸”) |
| options |
varchar(255) |
|
属性可选值,用分号分隔(如“红色;蓝色”) |
| attr_type |
tinyint |
|
属性类型(0-基本属性;1-销售属性) |
| sort |
smallint |
|
排序,数字越小越靠前 |
| category_id |
int |
|
关联 category 表的分类 ID |
| create_time |
datetime |
|
属性创建时间 |
3. spu 表(商品基础信息表)
| 字段名 |
字段类型 |
主键/外键 |
说明 |
| id |
int |
主键 |
商品(SPU)唯一标识 |
| name |
varchar(50) |
|
商品名称 |
| title |
varchar(255) |
|
商品标题 |
| description |
text |
|
商品描述 |
| category_id |
int |
|
关联 category 表的分类 ID |
| status |
tinyint |
|
商品状态(0-下架;10上架;2-删除) |
| create_time |
datetime |
|
商品创建时间 |
4. spu_attribute_value 表(SPU 属性值关联表)
| 字段名 |
字段类型 |
主键/外键 |
说明 |
| id |
int |
主键 |
关联记录唯一标识 |
| spu_id |
int |
|
关联 spu 表的商品 ID |
| attr_id |
int |
|
关联 attribute 表的属性 ID |
| attr_value |
varchar(255) |
|
属性对应的具体值 |
5. sku 表(商品销售单元表)
| 字段名 |
字段类型 |
主键/外键 |
说明 |
| id |
int |
主键 |
SKU 唯一标识 |
| spu_id |
int |
|
关联 spu 表的商品 ID |
| price |
decimal(18,2) |
|
SKU 售价 |
| stock |
int |
|
库存 |
| vender_id |
varchar(50) |
|
供应商 ID(可选) |
| status |
tinyint |
|
SKU 状态(0-正常;1-删除) |
6. sku_attribute_value 表(SKU 属性值关联表)
| 字段名 |
字段类型 |
主键/外键 |
说明 |
| id |
int |
主键 |
关联记录唯一标识 |
| sku_id |
int |
|
关联 sku 表的 SKU ID |
| attr_id |
int |
|
关联 attribute 表的属性 ID |
| attr_value |
varchar(255) |
|
属性对应的具体值 |
表间关系说明
category 是分类表,spu 关联 category 表的 category_id,表示商品属于某个分类; attribute 是属性表,spu_attribute_value 和 sku_attribute_value 分别关联 spu/sku 的 id 和 attribute 的 id,实现“商品/SKU → 属性 → 属性值”的多对多映射; spu 是商品基础信息表,sku 关联 spu 的 id,表示一个商品(SPU)可对应多个销售单元(SKU)。
以上结构覆盖了商品的分类、基础信息、属性、销售单元等核心维度,满足电商系统中商品管理的典型需求。