主题
CatchShop 商品模块数据字典
数据表概览
CatchShop 商城商品模块包含 12 个核心数据表:
| 表名 | 中文名称 | 用途 |
|---|---|---|
shop_products | 商品主表 | 存储商品基础信息(SPU) |
shop_product_sku | 商品 SKU 表 | 存储商品规格库存单位 |
shop_category | 商品分类表 | 商品分类管理 |
shop_product_brand | 商品品牌表 | 品牌信息管理 |
shop_product_info | 商品详情表 | 商品详细描述信息 |
shop_product_spec | 商品规格表 | 规格名称定义 |
shop_product_spec_values | 规格值表 | 规格的具体值 |
shop_product_services | 商品服务表 | 售后服务定义 |
shop_product_tags | 商品标签表 | 商品标签定义 |
shop_product_comments | 商品评论表 | 用户商品评论 |
category_has_products | 分类商品关联表 | 多对多关联 |
product_has_* | 其他关联表 | 商品与服务、标签、规格的关联 |
1. shop_products - 商品主表
表说明:存储商品的基础信息(SPU),包括标题、价格、库存、状态等核心字段。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
type | tinyint | 1 | 是 | 1 | 商品类型:1=实体商品,2=虚拟商品,3=卡密商品 |
title | varchar | 255 | 是 | - | 商品标题 |
keywords | varchar | 255 | 否 | - | SEO 关键词 |
subtitle | varchar | 255 | 否 | - | 商品副标题 |
images | json | - | 否 | - | 商品图片(JSON 数组) |
video | varchar | 255 | 否 | - | 商品视频链接 |
brand_id | int | 11 | 否 | - | 品牌 ID,外键关联 shop_product_brand.id |
category_id | int | 11 | 否 | - | 主分类 ID,外键关联 shop_category.id |
is_available | tinyint | 1 | 是 | 1 | 上架状态:1=立即上架,2=放入仓库,3=下架,4=售罄 |
is_schedule | tinyint | 1 | 是 | 2 | 是否定时上下架:1=是,2=否 |
schedule_time | int | 10 | 否 | - | 定时上架时间戳 |
is_specifications | tinyint | 1 | 是 | 1 | 规格类型:1=单规格,2=多规格 |
unit | varchar | 20 | 否 | - | 商品单位(件、个、套等) |
sales | int | 11 | 是 | 0 | 实际销量 |
virtual_sales | int | 11 | 是 | 0 | 虚拟销量 |
sort | int | 11 | 是 | 0 | 排序权重 |
ship_type | tinyint | 1 | 是 | 1 | 运费类型:1=固定运费,2=运费模板 |
ship_fee | int | 11 | 是 | 0 | 固定运费(分) |
ship_template_id | int | 11 | 否 | - | 运费模板 ID |
product_no | varchar | 50 | 否 | - | 商品编号 |
price | int | 11 | 是 | 0 | 销售价格(分) |
list_price | int | 11 | 是 | 0 | 市场价格(分) |
cost_price | int | 11 | 是 | 0 | 成本价格(分) |
weight | int | 11 | 是 | 0 | 重量(克) |
volume | int | 11 | 是 | 0 | 体积(立方厘米) |
stock | int | 11 | 是 | 0 | 库存数量 |
alert_stock | int | 11 | 是 | 0 | 预警库存 |
creator_id | int | 11 | 否 | - | 创建人 ID |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
deleted_at | int | 10 | 否 | - | 软删除时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_title(title) - INDEX
idx_brand_category(brand_id,category_id) - INDEX
idx_status_sort(is_available,sort) - INDEX
idx_price(price) - INDEX
idx_created_at(created_at)
商品类型枚举:
1- 实体商品(需要物流配送)2- 虚拟商品(无需物流)3- 卡密商品(自动发卡)
上架状态枚举:
1- 立即上架2- 放入仓库3- 下架4- 售罄
2. shop_product_sku - 商品 SKU 表
表说明:存储商品的具体规格库存单位,支持多规格商品的价格和库存管理。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
product_id | int | 11 | 是 | - | 商品 ID,外键关联 shop_products.id |
spec_id | varchar | 255 | 否 | - | 规格组合 ID(如:1_2_3) |
images | json | - | 否 | - | SKU 专属图片(JSON 数组) |
product_no | varchar | 50 | 否 | - | SKU 编号 |
price | int | 11 | 是 | 0 | 销售价格(分) |
list_price | int | 11 | 是 | 0 | 市场价格(分) |
cost_price | int | 11 | 是 | 0 | 成本价格(分) |
weight | int | 11 | 是 | 0 | 重量(克) |
volume | int | 11 | 是 | 0 | 体积(立方厘米) |
stock | int | 11 | 是 | 0 | 库存数量 |
alert_stock | int | 11 | 是 | 0 | 预警库存 |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_product_id(product_id) - INDEX
idx_spec_id(spec_id) - INDEX
idx_price(price) - INDEX
idx_stock(stock)
关联关系:
product_id→shop_products.id(商品主表)
3. shop_category - 商品分类表
表说明:商品分类管理,支持树形结构的多级分类。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
parent_id | int | 11 | 是 | 0 | 父分类 ID,0 为顶级分类 |
name | varchar | 50 | 是 | - | 分类名称 |
icon | varchar | 255 | 否 | - | 分类图标 |
sort | int | 11 | 是 | 0 | 排序权重 |
status | tinyint | 1 | 是 | 1 | 状态:1=启用,0=禁用 |
title | varchar | 255 | 否 | - | SEO 标题 |
keywords | varchar | 255 | 否 | - | SEO 关键词 |
descriptions | text | - | 否 | - | SEO 描述 |
creator_id | int | 11 | 否 | - | 创建人 ID |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
deleted_at | int | 10 | 否 | - | 软删除时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_parent_id(parent_id) - INDEX
idx_status_sort(status,sort) - INDEX
idx_name(name)
4. shop_product_brand - 商品品牌表
表说明:商品品牌信息管理。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
name | varchar | 50 | 是 | - | 品牌名称 |
logo | varchar | 255 | 否 | - | 品牌 LOGO |
sort | int | 11 | 是 | 0 | 排序权重 |
creator_id | int | 11 | 否 | - | 创建人 ID |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
deleted_at | int | 10 | 否 | - | 软删除时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_name(name) - INDEX
idx_sort(sort)
5. shop_product_info - 商品详情表
表说明:存储商品的详细描述信息,如商品详情、规格参数等。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
product_id | int | 11 | 是 | - | 商品 ID,外键关联 shop_products.id |
content | longtext | - | 否 | - | 商品详情内容(HTML) |
params | json | - | 否 | - | 商品参数(JSON 格式) |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
索引信息:
- PRIMARY KEY (
id) - UNIQUE KEY
uk_product_id(product_id)
关联关系:
product_id→shop_products.id(商品主表)
6. shop_product_spec - 商品规格表
表说明:定义商品规格名称,如"颜色"、"尺寸"等。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
name | varchar | 50 | 是 | - | 规格名称(如:颜色、尺寸) |
sort | int | 11 | 是 | 0 | 排序权重 |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_name(name) - INDEX
idx_sort(sort)
7. shop_product_spec_values - 规格值表
表说明:存储具体的规格值,如"红色"、"蓝色"、"L"、"XL"等。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
spec_id | int | 11 | 是 | - | 规格 ID,外键关联 shop_product_spec.id |
value | varchar | 50 | 是 | - | 规格值(如:红色、L) |
image | varchar | 255 | 否 | - | 规格值图片(如颜色图片) |
sort | int | 11 | 是 | 0 | 排序权重 |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_spec_id(spec_id) - INDEX
idx_value(value) - INDEX
idx_sort(sort)
关联关系:
spec_id→shop_product_spec.id(规格表)
8. shop_product_services - 商品服务表
表说明:定义商品的售后服务,如"7 天无理由退换"、"质量保证"等。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
name | varchar | 50 | 是 | - | 服务名称 |
description | varchar | 255 | 否 | - | 服务描述 |
icon | varchar | 255 | 否 | - | 服务图标 |
sort | int | 11 | 是 | 0 | 排序权重 |
status | tinyint | 1 | 是 | 1 | 状态:1=启用,0=禁用 |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_name(name) - INDEX
idx_status_sort(status,sort)
9. shop_product_tags - 商品标签表
表说明:定义商品标签,如"热销"、"新品"、"推荐"等。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
name | varchar | 50 | 是 | - | 标签名称 |
color | varchar | 20 | 否 | - | 标签颜色(如:#FF0000) |
sort | int | 11 | 是 | 0 | 排序权重 |
status | tinyint | 1 | 是 | 1 | 状态:1=启用,0=禁用 |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_name(name) - INDEX
idx_status_sort(status,sort)
10. shop_product_comments - 商品评论表
表说明:存储用户对商品的评论和评分。
| 字段名 | 类型 | 长度 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
id | int | 11 | 是 | - | 主键 ID |
product_id | int | 11 | 是 | - | 商品 ID,外键关联 shop_products.id |
user_id | int | 11 | 是 | - | 用户 ID,外键关联 users.id |
order_id | int | 11 | 否 | - | 订单 ID,外键关联 shop_orders.id |
rating | tinyint | 1 | 是 | 5 | 评分:1-5 星 |
content | text | - | 是 | - | 评论内容 |
images | json | - | 否 | - | 评论图片(JSON 数组) |
reply_content | text | - | 否 | - | 商家回复内容 |
reply_time | int | 10 | 否 | - | 回复时间戳 |
status | tinyint | 1 | 是 | 1 | 状态:1=正常,0=隐藏 |
created_at | int | 10 | 是 | - | 创建时间戳 |
updated_at | int | 10 | 是 | - | 更新时间戳 |
索引信息:
- PRIMARY KEY (
id) - INDEX
idx_product_id(product_id) - INDEX
idx_user_id(user_id) - INDEX
idx_order_id(order_id) - INDEX
idx_rating(rating) - INDEX
idx_status_created(status,created_at)
关联关系:
product_id→shop_products.id(商品主表)user_id→users.id(用户表)order_id→shop_orders.id(订单表)
关联表
category_has_products - 分类商品关联表
表说明:商品与分类的多对多关联关系。
| 字段名 | 类型 | 说明 |
|---|---|---|
category_id | int | 分类 ID |
product_id | int | 商品 ID |
product_has_services - 商品服务关联表
表说明:商品与服务的多对多关联关系。
| 字段名 | 类型 | 说明 |
|---|---|---|
product_id | int | 商品 ID |
service_id | int | 服务 ID |
product_has_tags - 商品标签关联表
表说明:商品与标签的多对多关联关系。
| 字段名 | 类型 | 说明 |
|---|---|---|
product_id | int | 商品 ID |
tag_id | int | 标签 ID |
product_has_specs - 商品规格关联表
表说明:商品与规格值的多对多关联关系。
| 字段名 | 类型 | 说明 |
|---|---|---|
product_id | int | 商品 ID |
spec_id | int | 规格 ID |
spec_value_id | int | 规格值 ID |
业务规则说明
商品管理规则
- 价格单位:所有价格以分为单位存储,避免浮点数精度问题
- 图片存储:商品图片以 JSON 数组格式存储,支持多图展示
- 库存管理:支持总库存和 SKU 级别库存,库存不能为负数
- 状态控制:商品状态变更需要考虑业务逻辑限制
规格管理规则
- 单/多规格:商品可以是单规格或多规格,通过
is_specifications字段控制 - 规格组合:多规格商品的 SKU 通过规格值组合生成
- 规格处理:规格数据需要通过
SpecificationProcessor进行处理 - 规格限制:删除规格时需要检查是否有商品在使用
分类管理规则
- 树形结构:支持无限级分类,通过
parent_id构建父子关系 - 分类关联:商品可以属于多个分类,通过关联表实现
- 分类删除:删除分类时需要处理子分类和关联商品
- 分类排序:通过
sort字段控制显示顺序
评论管理规则
- 评论权限:只有购买过商品的用户才能评论(通过
order_id关联) - 评分范围:评分为 1-5 星,必须在有效范围内
- 评论审核:可以通过
status字段控制评论的显示/隐藏 - 商家回复:支持商家对评论进行回复