DATABASE.md 5.6 KB

数据库设计参考

本文档为后端开发提供数据表结构建议,基于前端 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 条产品示例数据,可作为数据库初始化种子数据导入。