Files
ai/docs/system_b/05_数据库表结构设计.md
T
2026-06-15 17:45:28 +08:00

17 KiB
Executable File
Raw Blame History

05_数据库表结构设计

1. 文档目标

本文档定义系统 B 的 MySQL 核心表结构。字段类型为建议值,实际开发时可根据 ORM 选型调整。

2. 命名原则

  • 表名使用复数:users, projects
  • 主键统一为 id BIGINT 或 UUID,根据实现决定
  • 时间字段统一:created_at, updated_at, deleted_at
  • 状态字段统一使用字符串枚举
  • 金额使用整数分:amount_cent
  • JSON 配置使用 JSON 类型

3. users 用户表

字段 类型 说明
id BIGINT PK 用户 ID
nickname VARCHAR(100) 昵称
phone VARCHAR(30) 手机号
email VARCHAR(100) 邮箱
wechat_openid VARCHAR(100) 微信 openid
avatar_asset_id BIGINT 头像资源
status VARCHAR(30) active/disabled
created_at DATETIME 创建时间
updated_at DATETIME 更新时间

索引:

  • UNIQUE(phone)
  • UNIQUE(wechat_openid)

4. admin_users 后台用户表

字段 类型 说明
id BIGINT PK 管理员 ID
username VARCHAR(100) 用户名
password_hash VARCHAR(255) 密码哈希
role_id BIGINT 角色 ID
status VARCHAR(30) 状态
created_at DATETIME 创建时间

5. roles 角色表

字段 类型 说明
id BIGINT PK 角色 ID
name VARCHAR(100) 角色名称
code VARCHAR(100) 角色编码
permissions JSON 权限列表
status VARCHAR(30) 状态

6. projects 项目表

字段 类型 说明
id BIGINT PK 项目 ID
user_id BIGINT 用户 ID
title VARCHAR(200) 项目标题
life_theme_id BIGINT 人生主题
package_id BIGINT 套餐
style_id BIGINT 视觉风格
output_type VARCHAR(30) image/video/both
status VARCHAR(50) 项目状态
payment_status VARCHAR(50) 支付状态
total_duration INT 视频秒数
image_count INT 图片数量
cover_asset_id BIGINT 封面
video_asset_id BIGINT 视频
allow_public_case BOOLEAN 是否允许公开案例
custom_info JSON 用户定制信息
created_at DATETIME 创建时间
updated_at DATETIME 更新时间
completed_at DATETIME 完成时间

索引:

  • INDEX(user_id, status)
  • INDEX(created_at)
  • INDEX(life_theme_id)

7. orders 订单表

字段 类型 说明
id BIGINT PK 订单 ID
user_id BIGINT 用户 ID
project_id BIGINT 项目 ID
package_id BIGINT 套餐 ID
amount_cent INT 金额,单位分
pay_status VARCHAR(30) pending/paid/failed/cancelled
pay_method VARCHAR(30) wechat/alipay/balance/manual
transaction_id VARCHAR(100) 第三方交易号
refund_status VARCHAR(30) none/refunding/refunded
created_at DATETIME 创建时间
paid_at DATETIME 支付时间

8. packages 套餐表

字段 类型 说明
id BIGINT PK 套餐 ID
code VARCHAR(100) 编码
name VARCHAR(100) 名称
price_cent INT 价格
world_min INT 最少世界数
world_max INT 最多世界数
scene_min INT 最少场景数
scene_max INT 最多场景数
image_min INT 最少图片数
image_max INT 最多图片数
video_duration_min INT 最短视频秒数
video_duration_max INT 最长视频秒数
revision_count INT 修改次数
allow_video BOOLEAN 是否视频
allow_voice BOOLEAN 是否旁白
allow_advanced_video BOOLEAN 是否高级动态
manual_review_required BOOLEAN 是否人工审核
config_json JSON 扩展配置
status VARCHAR(30) 状态

9. life_themes 人生主题表

字段 类型 说明
id BIGINT PK 主题 ID
code VARCHAR(100) 编码
name VARCHAR(100) 名称
description TEXT 说明
cover_asset_id BIGINT 封面
person_schema JSON 人物结构规则
default_copy_moods JSON 默认文案风格
status VARCHAR(30) 状态
sort_order INT 排序

person_schema 示例:

{
  "type": "couple",
  "roles": ["person_a", "person_b"],
  "min_photos_each": 3,
  "max_photos_each": 8,
  "minor_sensitive": false
}

10. style_templates 风格模板表

字段 类型 说明
id BIGINT PK 风格 ID
code VARCHAR(100) 编码
name VARCHAR(100) 名称
description TEXT 说明
cover_asset_id BIGINT 封面
prompt_style TEXT 风格 Prompt
negative_rules TEXT 禁止项
supported_theme_ids JSON 支持主题
status VARCHAR(30) 状态

11. world_templates 世界观模板表

字段 类型 说明
id BIGINT PK 世界 ID
code VARCHAR(100) 编码
name VARCHAR(100) 名称
category VARCHAR(100) 分类
description TEXT 说明
cover_asset_id BIGINT 封面
prompt_base TEXT 世界基础 Prompt
costume_rules TEXT 服装规则
scene_rules TEXT 场景规则
style_rules TEXT 风格规则
negative_rules TEXT 禁止项
supported_theme_ids JSON 支持主题
supported_style_ids JSON 支持风格
is_premium BOOLEAN 高级模板
status VARCHAR(30) 状态
sort_order INT 排序

12. scene_templates 场景模板表

字段 类型 说明
id BIGINT PK 场景 ID
world_id BIGINT 所属世界
code VARCHAR(100) 编码
name VARCHAR(100) 名称
description TEXT 说明
cover_asset_id BIGINT 封面
scene_prompt TEXT 场景 Prompt
composition_rules TEXT 构图规则
lighting_rules TEXT 光影规则
effect_type VARCHAR(100) 特效类型
recommended_shot_count INT 推荐镜头数
is_premium BOOLEAN 高级场景
status VARCHAR(30) 状态
sort_order INT 排序

13. shot_templates 镜头模板表

字段 类型 说明
id BIGINT PK 镜头模板 ID
scene_id BIGINT 所属场景
code VARCHAR(100) 编码
name VARCHAR(100) 名称
shot_type VARCHAR(100) 镜头类型
camera_angle VARCHAR(100) 视角
composition TEXT 构图
prompt_rule TEXT Prompt 规则
duration INT 默认秒数
effect_type VARCHAR(100) 运镜/特效
status VARCHAR(30) 状态
sort_order INT 排序

14. project_worlds 项目世界关系表

字段 类型 说明
id BIGINT PK ID
project_id BIGINT 项目 ID
world_id BIGINT 世界 ID
sort_order INT 顺序

15. project_scenes 项目场景关系表

字段 类型 说明
id BIGINT PK ID
project_id BIGINT 项目 ID
world_id BIGINT 世界 ID
scene_id BIGINT 场景 ID
sort_order INT 顺序

16. person_profiles 人物档案表

字段 类型 说明
id BIGINT PK 人物档案 ID
project_id BIGINT 项目 ID
role VARCHAR(50) person_a/person_b/child 等
name VARCHAR(100) 名称
gender_label VARCHAR(50) 性别标签,可选
age_group VARCHAR(50) 年龄段
appearance_summary TEXT 外貌摘要
reference_asset_ids JSON 参考照片
anchor_asset_id BIGINT 锚点图
quality_score DECIMAL(5,2) 质量分
status VARCHAR(30) 状态
created_at DATETIME 创建时间

V3 真人动态视频增强字段:

字段 类型 说明
identity_lock_status VARCHAR(50) unlocked/generating_anchor/waiting_user_confirm/locked/rejected
face_consistency_score DECIMAL(5,2) 本人相似度评分
primary_reference_asset_id BIGINT 主参考照片
approved_anchor_asset_id BIGINT 用户确认的身份锚点
age_preserve_rule VARCHAR(100) 年龄保持规则:strict/soft/allow_younger 等
beautify_level VARCHAR(50) 美化强度:none/light/medium/high
style_transform_level VARCHAR(50) 风格转换强度:realistic/semi_real/comic
privacy_level VARCHAR(50) 隐私等级:normal/sensitive/minor

17. assets 素材表

字段 类型 说明
id BIGINT PK 素材 ID
user_id BIGINT 用户 ID
project_id BIGINT 项目 ID
asset_type VARCHAR(50) 类型
file_path VARCHAR(500) 存储路径
file_url VARCHAR(500) 访问 URL,可为空
mime_type VARCHAR(100) MIME
width INT
height INT
duration INT 音视频秒数
size BIGINT 文件大小
hash VARCHAR(100) 文件哈希
visibility VARCHAR(30) private/public/case
status VARCHAR(30) 状态
created_at DATETIME 创建时间

asset_type

upload_photo
preview_image
final_image
audio
subtitle
video
cover
case_asset
music

18. shot_plans 镜头计划表

字段 类型 说明
id BIGINT PK 镜头计划 ID
project_id BIGINT 项目 ID
world_id BIGINT 世界 ID
scene_id BIGINT 场景 ID
shot_template_id BIGINT 镜头模板 ID
title VARCHAR(200) 标题
description TEXT 画面描述
prompt_text TEXT 正向 Prompt
negative_prompt TEXT 负向 Prompt
duration INT 秒数
output_asset_id BIGINT 生成图
sort_order INT 顺序
status VARCHAR(30) 状态

19. render_tasks 生成任务表

字段 类型 说明
id BIGINT PK 任务 ID
project_id BIGINT 项目 ID
task_type VARCHAR(100) 任务类型
provider_id BIGINT Provider
status VARCHAR(30) 状态
input_json JSON 输入
input_hash VARCHAR(100) 幂等哈希
output_asset_id BIGINT 输出素材
provider_request_id VARCHAR(200) 三方请求 ID
retry_count INT 重试次数
max_retry INT 最大重试
cost_estimate_cent INT 预估成本
cost_actual_cent INT 实际成本
error_code VARCHAR(100) 错误码
error_message TEXT 错误信息
created_at DATETIME 创建时间
started_at DATETIME 开始时间
finished_at DATETIME 完成时间

索引:

  • UNIQUE(project_id, task_type, input_hash)
  • INDEX(status, created_at)

20. provider_configs Provider 配置表

字段 类型 说明
id BIGINT PK Provider ID
provider_type VARCHAR(50) text/image/video/voice/moderation
provider_name VARCHAR(100) 名称
model_name VARCHAR(100) 模型名
api_base VARCHAR(500) API Base
api_key_ref VARCHAR(100) 密钥引用,不直接存明文
priority INT 优先级
quality_level VARCHAR(50) quality/speed/cost
rate_limit_json JSON 限流配置
cost_rule_json JSON 成本规则
fallback_provider_id BIGINT 备用 Provider
status VARCHAR(30) 状态

21. provider_logs Provider 日志表

字段 类型 说明
id BIGINT PK 日志 ID
provider_id BIGINT Provider
project_id BIGINT 项目
task_id BIGINT 任务
request_payload JSON 请求,可脱敏
response_payload JSON 响应,可脱敏
status VARCHAR(30) 状态
cost_cent INT 成本
latency_ms INT 耗时
created_at DATETIME 创建时间

22. revision_requests 修改申请表

字段 类型 说明
id BIGINT PK 修改 ID
project_id BIGINT 项目 ID
user_id BIGINT 用户 ID
revision_type VARCHAR(30) small/medium/major
request_text TEXT 修改内容
status VARCHAR(30) 状态
remaining_count_before INT 修改前剩余次数
handled_by BIGINT 处理人
created_at DATETIME 创建时间
updated_at DATETIME 更新时间

23. authorizations 授权记录表

字段 类型 说明
id BIGINT PK 授权 ID
user_id BIGINT 用户 ID
project_id BIGINT 项目 ID
authorization_type VARCHAR(50) 类型
content TEXT 授权文本
ip VARCHAR(100) IP
user_agent TEXT UA
confirmed_at DATETIME 确认时间

类型:

photo_usage
public_case
minor_guardian
privacy_policy
terms

24. case_showcases 案例表

字段 类型 说明
id BIGINT PK 案例 ID
project_id BIGINT 来源项目
title VARCHAR(200) 标题
cover_asset_id BIGINT 封面
video_asset_id BIGINT 视频
theme_id BIGINT 主题
style_id BIGINT 风格
world_ids JSON 世界列表
sort_order INT 排序
is_featured BOOLEAN 首页推荐
status VARCHAR(30) 状态
authorization_id BIGINT 授权记录

25. music_assets 音乐素材表

字段 类型 说明
id BIGINT PK 音乐 ID
name VARCHAR(200) 名称
mood VARCHAR(100) 情绪
asset_id BIGINT 音频资源
duration INT 秒数
license_type VARCHAR(100) 授权类型
source VARCHAR(200) 来源
usage_scope TEXT 使用范围
status VARCHAR(30) 状态

26. system_configs 系统配置表

字段 类型 说明
id BIGINT PK 配置 ID
config_key VARCHAR(100) Key
config_value JSON Value
description TEXT 说明
updated_at DATETIME 更新时间

27. audit_logs 操作日志表

字段 类型 说明
id BIGINT PK 日志 ID
actor_type VARCHAR(30) user/admin/system
actor_id BIGINT 操作人
action VARCHAR(100) 动作
target_type VARCHAR(100) 目标类型
target_id BIGINT 目标 ID
detail_json JSON 详情
ip VARCHAR(100) IP
created_at DATETIME 创建时间

28. V3 identity_anchors 身份锚点表

用于保存真人身份锚点,确保后续图片和视频尽量像本人。

字段 类型 说明
id BIGINT PK 锚点 ID
project_id BIGINT 项目 ID
person_id BIGINT 人物档案 ID
anchor_asset_id BIGINT 锚点素材
anchor_type VARCHAR(80) real_photo_anchor/semi_realistic_anchor/korean_comic_anchor/ancient_costume_anchor/future_style_anchor
quality_score DECIMAL(5,2) 锚点质量分
face_consistency_score DECIMAL(5,2) 与本人相似度
approved_by_user BOOLEAN 用户是否确认
approved_by_admin BOOLEAN 后台是否确认
status VARCHAR(50) generating/waiting_confirm/approved/rejected
created_at DATETIME 创建时间
updated_at DATETIME 更新时间

29. V3 motion_templates 动作模板表

用于控制动态写真和真人视频片段的动作范围。

字段 类型 说明
id BIGINT PK 动作模板 ID
name VARCHAR(100) 动作名称
motion_type VARCHAR(100) smile/blink/turn_head/walk_forward/hold_hands 等
description TEXT 说明
supported_themes JSON 支持人生主题
supported_worlds JSON 支持世界模板
supported_styles JSON 支持视觉风格
prompt_rule TEXT 动作 Prompt 规则
duration INT 默认片段秒数
difficulty_level VARCHAR(50) easy/medium/hard
cost_level VARCHAR(50) low/medium/high
status VARCHAR(30) 状态
sort_order INT 排序

推荐动作:

smile
blink
turn_head
walk_forward
hold_hands
look_at_each_other
bow_ceremony
lift_veil
hug
wave
stand_still_cinematic
slow_camera_push

30. V3 video_clips 视频片段表

每个 AI 动态视频片段单独存储,便于重试、替换、质检和成本追踪。

字段 类型 说明
id BIGINT PK 视频片段 ID
project_id BIGINT 项目 ID
scene_id BIGINT 场景 ID
shot_id BIGINT 镜头 ID
person_ids JSON 涉及人物 ID
provider_id BIGINT Provider 配置 ID
input_asset_id BIGINT 输入关键帧 / 参考图
output_asset_id BIGINT 输出视频素材
prompt_text TEXT 视频 Prompt
duration INT 秒数
resolution VARCHAR(50) 720p/1080p
motion_type VARCHAR(100) 动作类型
lipsync_enabled BOOLEAN 是否启用口型
status VARCHAR(50) pending/running/generated/failed/manual_required
retry_count INT 重试次数
cost_actual DECIMAL(12,4) 实际成本
quality_score DECIMAL(5,2) 质检分
quality_issues JSON 质检问题
created_at DATETIME 创建时间
updated_at DATETIME 更新时间

31. V3 lipsync_tasks 口型任务表

口型任务可选,不应阻塞基础交付;失败时可回退旁白字幕版本。

字段 类型 说明
id BIGINT PK 任务 ID
project_id BIGINT 项目 ID
video_clip_id BIGINT 视频片段 ID
audio_asset_id BIGINT 输入音频
output_asset_id BIGINT 口型后视频
provider_id BIGINT LipSync Provider
status VARCHAR(50) pending/running/success/failed/manual_required
cost_actual DECIMAL(12,4) 实际成本
retry_count INT 重试次数
error_code VARCHAR(100) 错误码
error_message TEXT 错误信息
created_at DATETIME 创建时间
updated_at DATETIME 更新时间