数据库设计参考
本文档为后端开发提供数据表结构建议,基于前端 Mock 数据(src/data/mock.ts)中的 22 条示例数据推导。
1. 产品表 products
| 字段 |
类型 |
说明 |
示例 |
| id |
VARCHAR(32) PK |
产品唯一 ID |
"1" |
| name_cn |
VARCHAR(200) |
中文名称 |
"秋季南瓜收获插枝装饰" |
| name_en |
VARCHAR(200) |
英文名称 |
"Fall Harvest Pumpkin Stake Decor" |
| sku |
VARCHAR(50) UNIQUE |
SKU 编号 |
"HL-FD-20241101" |
| price |
DECIMAL(10,2) |
价格(美元) |
8.99 |
| source |
ENUM |
数据来源 |
"Hobby Lobby" / "West Elm" / "Crate & Barrel" |
| description |
TEXT |
产品描述 |
"精美的秋季南瓜插枝装饰..." |
| dimensions |
VARCHAR(100) |
尺寸 |
"H: 18\" W: 6\"" |
| category |
VARCHAR(200) |
分类路径(> 分隔) |
"Fall > Outdoor Decor > Stake" |
| created_at |
DATETIME |
创建时间 |
|
| updated_at |
DATETIME |
更新时间 |
|
source 枚举值
"Hobby Lobby"
"West Elm"
"Crate & Barrel"
2. 产品图片表 product_images
| 字段 |
类型 |
说明 |
示例 |
| id |
INT PK AUTO |
自增 ID |
1 |
| product_id |
VARCHAR(32) FK |
关联产品 ID |
"1" |
| url |
VARCHAR(500) |
图片 URL |
"https://images.unsplash.com/..." |
| sort_order |
INT |
排序序号 |
0 |
3. 产品标签表 product_tags
| 字段 |
类型 |
说明 |
示例 |
| id |
INT PK AUTO |
自增 ID |
1 |
| product_id |
VARCHAR(32) FK |
关联产品 ID |
"1" |
| series |
VARCHAR(50) |
系列 |
"Fall" |
| season |
VARCHAR(20) |
季节 |
"秋季" |
| function |
VARCHAR(20) |
功能 |
"插枝" |
| material |
VARCHAR(20) |
材质 |
"Wood" |
枚举值参考
| 维度 |
可选值 |
| series |
Americana, Christmas, Everyday, Fall |
| season |
春季, 夏季, 秋季, 冬季, 万圣节, 圣诞节 |
| function |
插枝, 串绳, 墙挂, 桌上摆件 |
| material |
Wood, Metal, Ceramic, Fabric, Glass |
4. 视觉元素表 product_visual_tags
| 字段 |
类型 |
说明 |
示例 |
| id |
INT PK AUTO |
自增 ID |
1 |
| product_id |
VARCHAR(32) FK |
关联产品 ID |
"1" |
| visual_tag |
VARCHAR(50) |
视觉元素 |
"南瓜" |
已知视觉元素
南瓜, 向日葵, 枫叶, 松鼠, 卡车, 松球, 木纹, 麋鹿, 雪花, 花卉, 蜡烛, 稻草人, 雪景, 玉米
5. 导出记录表 export_records
| 字段 |
类型 |
说明 |
示例 |
| id |
VARCHAR(32) PK |
记录 ID |
"e1" |
| user_id |
VARCHAR(32) FK |
操作用户 ID |
"u1" |
| product_count |
INT |
产品数量 |
24 |
| size_mb |
INT |
文件大小(MB) |
156 |
| status |
ENUM |
状态 |
"completed" / "processing" / "failed" |
| img_format |
VARCHAR(20) |
图片格式 |
"original" / "compressed" |
| meta_format |
VARCHAR(10) |
元数据格式 |
"json" / "txt" |
| filename_pattern |
VARCHAR(100) |
命名规则 |
"{SKU}_{序号}" |
| download_url |
VARCHAR(500) |
下载链接 |
"https://..." |
| created_at |
DATETIME |
创建时间 |
"2026-06-15 14:30" |
| updated_at |
DATETIME |
更新时间 |
|
6. 导出任务-产品关联表 export_record_products
| 字段 |
类型 |
说明 |
| export_record_id |
VARCHAR(32) FK |
导出记录 ID |
| product_id |
VARCHAR(32) FK |
产品 ID |
联合主键:(export_record_id, product_id)
7. 用户表 users
| 字段 |
类型 |
说明 |
示例 |
| id |
VARCHAR(32) PK |
用户 ID |
"u1" |
| name |
VARCHAR(100) |
用户名 |
"设计师小王" |
| role |
VARCHAR(50) |
角色 |
"designer" |
| password_hash |
VARCHAR(255) |
密码哈希 |
|
| created_at |
DATETIME |
创建时间 |
|
8. 用户收藏表 user_favorites(可选)
| 字段 |
类型 |
说明 |
| user_id |
VARCHAR(32) FK |
用户 ID |
| product_id |
VARCHAR(32) FK |
产品 ID |
| created_at |
DATETIME |
收藏时间 |
联合主键:(user_id, product_id)
注:当前前端已用 localStorage 实现收藏,此表仅在需要跨设备同步时才开发。
9. 搜索历史表 search_histories(可选)
| 字段 |
类型 |
说明 |
| id |
INT PK AUTO |
自增 ID |
| user_id |
VARCHAR(32) FK |
用户 ID |
| query |
VARCHAR(200) |
搜索关键词 |
| created_at |
DATETIME |
搜索时间 |
注:当前前端已用 localStorage 实现搜索历史,此表仅在需要跨设备同步时才开发。
索引建议
-- 产品搜索
CREATE INDEX idx_products_name_cn ON products(name_cn);
CREATE INDEX idx_products_name_en ON products(name_en);
CREATE INDEX idx_products_sku ON products(sku);
CREATE INDEX idx_products_source ON products(source);
CREATE INDEX idx_products_price ON products(price);
-- 标签筛选
CREATE INDEX idx_product_tags_series ON product_tags(series);
CREATE INDEX idx_product_tags_season ON product_tags(season);
CREATE INDEX idx_product_tags_function ON product_tags(function);
CREATE INDEX idx_product_tags_material ON product_tags(material);
CREATE INDEX idx_product_visual_tags ON product_visual_tags(visual_tag);
-- 导出记录
CREATE INDEX idx_export_records_user ON export_records(user_id);
CREATE INDEX idx_export_records_status ON export_records(status);
-- 收藏
CREATE INDEX idx_user_favorites_user ON user_favorites(user_id);
初始数据
前端 src/data/mock.ts 包含 22 条产品示例数据,可作为数据库初始化种子数据导入。