Files
MTKJPAY/mt-pay/database/README_PRODUCT.md
qiube 19b53f0ed1 feat(config): 初始化项目配置文件
- 添加 application.yml 主配置文件,配置 Spring、Druid、MyBatis-Plus 等基础设置
- 添加 application-dev.yml 开发环境配置,配置数据源及 PingPong 沙箱参数
- 添加数据库建表及配置说明文档(README.md、README_DATABASE.md、README_PRODUCT.md)
- 添加商品表结构定义及示例数据说明
- 添加支付相关枚举类 RecordType 和充值信息 DTO RechargeDTO
- 添加日志文件 mt-pay.2025-12-19.log 用于记录系统启动异常信息
2025-12-22 10:18:59 +08:00

140 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 商品表结构说明
## 表名规范
所有表名使用 `mt_` 前缀,如:
- `mt_product` - 商品表
- `mt_product_sku` - 商品SKU表
## 表结构
### 1. mt_product商品表
**字段说明:**
| 字段名 | 类型 | 说明 | 备注 |
|--------|------|------|------|
| id | BIGINT | 商品ID | 主键,自增 |
| name | VARCHAR(255) | 商品名称 | 必填 |
| price | DECIMAL(12,2) | 商品价格 | 基础价格默认0.00 |
| main_image | VARCHAR(4000) | 主图URL | 可选 |
| status | VARCHAR(20) | 商品状态 | ACTIVE-上架INACTIVE-下架DELETED-已删除 |
| shop_id | BIGINT | 店铺ID | 必填,关联店铺 |
| create_time | DATETIME | 创建时间 | 自动填充 |
| update_time | DATETIME | 更新时间 | 自动更新 |
**索引:**
- 主键:`id`
- 普通索引:`shop_id``status``create_time`
**排序规则:**
- 使用 `utf8mb4_general_ci` 排序规则
### 2. mt_product_sku商品SKU表
**字段说明:**
| 字段名 | 类型 | 说明 | 备注 |
|--------|------|------|------|
| id | BIGINT | SKU ID | 主键,自增 |
| product_id | BIGINT | 商品ID | 外键关联mt_product |
| sku | VARCHAR(2000) | SKU编码 | 必填 |
| price | DECIMAL(12,2) | 价格 | 必填 |
| currency | VARCHAR(3) | 货币 | ISO 4217代码默认USD |
| stock | INT | 库存数量 | 默认0 |
| sales_attrs | LONGTEXT | 销售属性 | JSON格式[{"name":"颜色","value":"红色"}] |
| sku_image | VARCHAR(4000) | SKU图片URL | 可选 |
| weight | DECIMAL(10,2) | 重量 | 单位:克 |
| size | VARCHAR(200) | 大小/尺寸 | JSON格式{"length":10,"width":5,"height":3} |
| specification | VARCHAR(2000) | 规格 | 文本描述 |
| status | VARCHAR(20) | SKU状态 | ACTIVE-启用INACTIVE-禁用 |
| create_time | DATETIME | 创建时间 | 自动填充 |
| update_time | DATETIME | 更新时间 | 自动更新 |
**索引:**
- 主键:`id`
- 普通索引:`product_id``status`
- 外键:`product_id``mt_product.id`(级联删除)
## 数据示例
### 商品示例
```sql
INSERT INTO `mt_product` (`name`, `price`, `main_image`, `status`, `shop_id`)
VALUES ('Macaron 马卡龙礼盒装', 20.00, 'https://example.com/image.jpg', 'ACTIVE', 1);
```
### SKU示例
```sql
-- SKU 1粉色6枚装
INSERT INTO `mt_product_sku` (
`product_id`, `sku`, `price`, `currency`, `stock`,
`sales_attrs`, `sku_image`, `weight`, `size`, `specification`, `status`
) VALUES (
1, 'SKU001', 18.00, 'USD', 50,
'[{"name":"颜色","value":"粉色"},{"name":"规格","value":"6枚装"}]',
'https://example.com/pink-6pcs.jpg', 500.00,
'{"length":20,"width":15,"height":5}',
'6枚装马卡龙礼盒', 'ACTIVE'
);
-- SKU 2蓝色12枚装
INSERT INTO `mt_product_sku` (
`product_id`, `sku`, `price`, `currency`, `stock`,
`sales_attrs`, `sku_image`, `weight`, `size`, `specification`, `status`
) VALUES (
1, 'SKU002', 20.00, 'USD', 100,
'[{"name":"颜色","value":"蓝色"},{"name":"规格","value":"12枚装"}]',
'https://example.com/blue-12pcs.jpg', 800.00,
'{"length":25,"width":20,"height":8}',
'12枚装马卡龙礼盒', 'ACTIVE'
);
```
## JSON字段格式说明
### sales_attrs销售属性
```json
[
{"name": "颜色", "value": "粉色"},
{"name": "规格", "value": "6枚装"}
]
```
### size尺寸
```json
{
"length": 20,
"width": 15,
"height": 5,
"unit": "cm"
}
```
## 执行SQL
```bash
# 在MySQL中执行
mysql -u用户名 -p密码 数据库名 < mt_product_schema.sql
```
或在MySQL客户端中
```sql
SOURCE /path/to/mt_product_schema.sql;
```
## 注意事项
1. **字符集**:使用 `utf8mb4` 字符集支持emoji和特殊字符
2. **排序规则**:使用 `utf8mb4_unicode_ci`
3. **存储引擎**:使用 `InnoDB`,支持事务和外键
4. **外键约束**删除商品时会级联删除所有SKU
5. **SKU字段**`sku` 字段最大2000字符不再设置唯一索引可根据业务需求决定是否唯一
6. **JSON字段**`sales_attrs``size` 字段存储JSON格式数据需要应用层进行解析