电商平台 SPU-SKU 数据模型设计
本设计基于 MySQL,构建一个灵活、可扩展的 SPU-SKU 数据模型,适用于 B2B、B2C 等多种电商平台。
### 1. 核心实体
- SPU (Standard Product Unit):标准产品单元 代表一类商品的共同特征,例如手机、书籍。
- SKU (Stock Keeping Unit):库存量单位 代表一件具体的商品,是 SPU 的一个具体实例,例如 iPhone 13 Pro Max 256G 金色。
### 2. 数据表设计
#### 2.1 SPU 表
| 字段名 | 数据类型 | 是否为空 | 说明 |
| :------------- | :-------- | :------- | :---------------------------------------- |
| spu_id | INT | NOT NULL | SPU ID,主键 |
| name | VARCHAR(255) | NOT NULL | SPU 名称 |
| category_id | INT | NOT NULL | 类目 ID |
| brand_id | INT | NOT NULL | 品牌 ID |
| description | TEXT | NULL | SPU 描述 |
| created_at | TIMESTAMP | NOT NULL | 创建时间 |
| updated_at | TIMESTAMP | NOT NULL | 更新时间 |
#### 2.2 SKU 表
| 字段名 | 数据类型 | 是否为空 | 说明 |
| :-------------- | :-------- | :------- | :--------------------------------- |
| sku_id | INT | NOT NULL | SKU ID,主键 |
| spu_id | INT | NOT NULL | SPU ID |
| attribute_ids | VARCHAR(255) | NOT NULL | SKU 属性 ID 列表,多个属性 ID 用逗号分隔 |
| price | DECIMAL(10,2) | NOT NULL | 价格 |
| stock | INT | NOT NULL | 库存 |
| created_at | TIMESTAMP | NOT NULL | 创建时间 |
| updated_at | TIMESTAMP | NOT NULL | 更新时间 |
#### 2.3 属性表
| 字段名 | 数据类型 | 是否为空 | 说明 |
| :---------- | :-------- | :------- | :------------------ |
| attribute_id | INT | NOT NULL | 属性 ID,主键 |
| name | VARCHAR(255) | NOT NULL | 属性名称 |
| values | TEXT | NULL | 属性值列表,多个值用逗号分隔 |
### 3. 关系说明
- SPU 表与 SKU 表是一对多关系,一个 SPU 可以对应多个 SKU。
- SKU 表与属性表是多对多关系,一个 SKU 可以拥有多个属性,一个属性也可以属于多个 SKU,通过中间表
sku_attribute
实现关联。
### 4. 扩展性
- 可以根据实际业务需求添加其他字段,例如 SPU 图片、SKU 规格等。
- 可以使用数据库视图简化查询操作。
### 5. 注意事项
- 该数据模型仅供参考,实际设计时需根据具体业务需求进行调整。
- 建议使用索引优化查询性能。