AI 短视频生成平台 - 数据库设计文档
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
文档版本:v1.0 创建日期:2026-05-16 数据库:MySQL 8.0
一、数据库规划
1.1 数据库命名规范
数据库名称: anime_platform
编码: utf8mb4
排序规则: utf8mb4_unicode_ci1.2 数据库划分
二、数据表设计
2.1 表结构总览
┌─────────────────────────────────────────────────────────────────────────┐
│ anime_platform │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ══════════════════════ 系统模块 ══════════════════════ │
│ ├── sys_user 系统用户表 │
│ ├── sys_department 组织部门表 │
│ ├── sys_menu 菜单权限表 │
│ ├── sys_role 角色表 │
│ ├── sys_user_role 用户角色关联表 │
│ ├── sys_dict 字典表 │
│ ├── sys_dict_item 字典项表 │
│ ├── sys_config 系统配置表 │
│ ├── sys_login_log 登录日志表 │
│ └── sys_operation_log 操作日志表 │
│ │
│ ══════════════════════ 会员模块 ══════════════════════ │
│ ├── mem_member 会员表 │
│ ├── mem_team 团队表 │
│ ├── mem_team_member 团队成员表 │
│ ├── mem_points 积分账户表 │
│ ├── mem_points_log 积分变动日志表 │
│ ├── mem_recharge_plan 充值方案表 │
│ ├── mem_recharge_order 充值订单表 │
│ ├── mem_voice 音色配置表 │
│ └── mem_sms_code 短信验证码表 │
│ │
│ ══════════════════════ 项目模块 ══════════════════════ │
│ ├── prj_project 项目表 │
│ ├── prj_volume 分集表 │
│ ├── prj_volume_episode 分集方案表 │
│ ├── prj_chapter 章节表 │
│ ├── prj_script 剧本表 │
│ ├── prj_shot 分镜表 │
│ ├── prj_shot_image 分镜图片表 │
│ ├── prj_shot_video 分镜视频表 │
│ ├── prj_shot_asset 分镜素材关联表 │
│ ├── prj_aspect_style 画风风格表 │
│ ├── prj_asset_character 角色资产表 │
│ ├── prj_asset_character_status 角色状态表 │
│ ├── prj_asset_scene 场景资产表 │
│ ├── prj_asset_prop 物品资产表 │
│ └── prj_asset_prop_status 物品状态表 │
│ │
│ ══════════════════════ AI模块 ══════════════════════ │
│ ├── ai_model AI模型表 │
│ ├── ai_model_sku 模型规格表 │
│ ├── ai_model_config 模型配置表 │
│ ├── ai_task AI任务表 │
│ ├── ai_task_callback 任务回调记录表 │
│ └── ai_generated_asset AI生成素材表 │
│ │
│ ══════════════════════ 文件模块 ══════════════════════ │
│ ├── file_attachment 附件表 │
│ ├── file_download_task 文件下载任务表 │
│ └── file_upload_chunk 上传分片记录表 │
│ │
│ ══════════════════════ 消息模块 ══════════════════════ │
│ ├── msg_message 站内消息表 │
│ ├── msg_notification 通知记录表 │
│ └── msg_import_log 导入日志表 │
│ │
└─────────────────────────────────────────────────────────────────────────┘三、系统模块(sys_*)
3.1 sys_user - 系统用户表
管理员/运营人员账户表。
CREATE TABLE `sys_user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` varchar(30) NOT NULL COMMENT '用户名',
`nickname` varchar(50) NOT NULL COMMENT '昵称',
`password` varchar(100) NOT NULL COMMENT '密码(加密)',
`salt` varchar(20) NOT NULL COMMENT '密码盐',
`avatar` varchar(255) DEFAULT '' COMMENT '头像URL',
`email` varchar(100) DEFAULT '' COMMENT '邮箱',
`phone` varchar(20) DEFAULT '' COMMENT '手机号',
`dept_id` bigint DEFAULT NULL COMMENT '部门ID',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=正常',
`login_fail_count` int NOT NULL DEFAULT 0 COMMENT '登录失败次数',
`login_fail_time` datetime DEFAULT NULL COMMENT '最后登录失败时间',
`login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_dept_id` (`dept_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统用户表';3.2 sys_department - 组织部门表
CREATE TABLE `sys_department` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门ID',
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父部门ID',
`ancestors` varchar(500) NOT NULL DEFAULT '' COMMENT '祖级列表',
`dept_name` varchar(50) NOT NULL COMMENT '部门名称',
`dept_code` varchar(50) DEFAULT '' COMMENT '部门编码',
`dept_type` tinyint NOT NULL DEFAULT 1 COMMENT '部门类型: 1=公司, 2=部门, 3=小组',
`leader` varchar(50) DEFAULT '' COMMENT '负责人',
`phone` varchar(20) DEFAULT '' COMMENT '联系电话',
`email` varchar(100) DEFAULT '' COMMENT '邮箱',
`sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=停用, 1=正常',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织部门表';3.3 sys_menu - 菜单权限表
CREATE TABLE `sys_menu` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
`menu_name` varchar(50) NOT NULL COMMENT '菜单名称',
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父菜单ID',
`menu_type` char(1) NOT NULL DEFAULT '' COMMENT '菜单类型: M=目录, C=菜单, F=按钮',
`route_name` varchar(100) DEFAULT '' COMMENT '路由名称',
`route_path` varchar(200) DEFAULT '' COMMENT '路由地址',
`component` varchar(255) DEFAULT '' COMMENT '组件路径',
`component_name` varchar(100) DEFAULT '' COMMENT '组件名称',
`is_frame` tinyint NOT NULL DEFAULT 1 COMMENT '是否外链: 0=是, 1=否',
`is_cache` tinyint NOT NULL DEFAULT 0 COMMENT '是否缓存: 0=缓存, 1=不缓存',
`visible` tinyint NOT NULL DEFAULT 1 COMMENT '显示状态: 0=隐藏, 1=显示',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '菜单状态: 0=禁用, 1=正常',
`perms` varchar(100) DEFAULT '' COMMENT '权限标识',
`icon` varchar(100) DEFAULT '' COMMENT '菜单图标',
`order_num` int NOT NULL DEFAULT 0 COMMENT '显示顺序',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单权限表';3.4 sys_role - 角色表
CREATE TABLE `sys_role` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID',
`role_name` varchar(50) NOT NULL COMMENT '角色名称',
`role_code` varchar(50) NOT NULL COMMENT '角色编码',
`role_type` tinyint NOT NULL DEFAULT 1 COMMENT '角色类型: 1=系统角色, 2=业务角色',
`data_scope` tinyint NOT NULL DEFAULT 1 COMMENT '数据范围: 1=全部, 2=本部门, 3=本部门及以下, 4=仅本人, 5=自定义',
`dept_ids` varchar(500) DEFAULT '' COMMENT '数据权限部门IDs',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=正常',
`sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_role_code` (`role_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';3.5 sys_user_role - 用户角色关联表
CREATE TABLE `sys_user_role` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`role_id` bigint NOT NULL COMMENT '角色ID',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_role` (`user_id`, `role_id`),
KEY `idx_role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表';3.6 sys_dict - 字典表
CREATE TABLE `sys_dict` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典ID',
`dict_name` varchar(100) NOT NULL COMMENT '字典名称',
`dict_code` varchar(100) NOT NULL COMMENT '字典编码',
`dict_type` tinyint NOT NULL DEFAULT 1 COMMENT '字典类型: 1=系统, 2=业务',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=正常',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_dict_code` (`dict_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='字典表';3.7 sys_dict_item - 字典项表
CREATE TABLE `sys_dict_item` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典项ID',
`dict_id` bigint NOT NULL COMMENT '字典ID',
`item_text` varchar(100) NOT NULL COMMENT '字典项文本',
`item_value` varchar(100) NOT NULL COMMENT '字典项值',
`item_type` tinyint NOT NULL DEFAULT 1 COMMENT '类型: 1=默认, 2=自定义',
`css_class` varchar(100) DEFAULT '' COMMENT '样式Class',
`list_class` varchar(100) DEFAULT '' COMMENT '列表Class',
`sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=正常',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_dict_id` (`dict_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='字典项表';3.8 sys_config - 系统配置表
CREATE TABLE `sys_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`config_name` varchar(100) NOT NULL COMMENT '配置名称',
`config_key` varchar(100) NOT NULL COMMENT '配置键名',
`config_value` text NOT NULL COMMENT '配置值',
`config_type` tinyint NOT NULL DEFAULT 1 COMMENT '配置类型: 1=系统, 2=用户',
`visible` tinyint NOT NULL DEFAULT 1 COMMENT '可见性: 0=隐藏, 1=显示',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';3.9 sys_login_log - 登录日志表
CREATE TABLE `sys_login_log` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '访问ID',
`user_id` bigint DEFAULT NULL COMMENT '用户ID',
`username` varchar(50) DEFAULT '' COMMENT '用户名',
`ipaddr` varchar(50) DEFAULT '' COMMENT '登录IP地址',
`login_location` varchar(255) DEFAULT '' COMMENT '登录地点',
`browser` varchar(50) DEFAULT '' COMMENT '浏览器类型',
`os` varchar(50) DEFAULT '' COMMENT '操作系统',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '登录状态: 0=失败, 1=成功',
`msg` varchar(255) DEFAULT '' COMMENT '提示消息',
`login_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '登录时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_login_time` (`login_time`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统访问记录';3.10 sys_operation_log - 操作日志表
CREATE TABLE `sys_operation_log` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`user_id` bigint DEFAULT NULL COMMENT '用户ID',
`username` varchar(50) DEFAULT '' COMMENT '用户名',
`operation` varchar(50) DEFAULT '' COMMENT '操作模块',
`request_method` varchar(10) DEFAULT '' COMMENT '请求方式',
`request_url` varchar(255) DEFAULT '' COMMENT '请求地址',
`request_params` text COMMENT '请求参数',
`response_params` text COMMENT '返回参数',
`ipaddr` varchar(50) DEFAULT '' COMMENT 'IP地址',
`user_agent` varchar(500) DEFAULT '' COMMENT '用户代理',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '操作状态: 0=异常, 1=正常',
`error_msg` text COMMENT '错误消息',
`operation_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
`cost_time` bigint DEFAULT NULL COMMENT '消耗时间(ms)',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_operation_time` (`operation_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志记录';四、会员模块(mem_*)
4.1 mem_member - 会员表
CREATE TABLE `mem_member` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '会员ID',
`member_code` varchar(32) NOT NULL COMMENT '会员编码(唯一标识)',
`nickname` varchar(50) DEFAULT '' COMMENT '昵称',
`avatar` varchar(255) DEFAULT '' COMMENT '头像URL',
`phone` varchar(20) DEFAULT '' COMMENT '手机号',
`email` varchar(100) DEFAULT '' COMMENT '邮箱',
`password` varchar(100) DEFAULT '' COMMENT '密码',
`salt` varchar(20) DEFAULT '' COMMENT '密码盐',
`union_id` varchar(64) DEFAULT '' COMMENT '微信UnionID',
`open_id` varchar(64) DEFAULT '' COMMENT '微信OpenID',
`member_level` tinyint NOT NULL DEFAULT 1 COMMENT '会员等级: 1=普通, 2=VIP, 3=SVIP',
`points` bigint NOT NULL DEFAULT 0 COMMENT '积分余额',
`freeze_points` bigint NOT NULL DEFAULT 0 COMMENT '冻结积分',
`total_points` bigint NOT NULL DEFAULT 0 COMMENT '累计积分',
`api_key` varchar(64) DEFAULT '' COMMENT 'API密钥(开放平台)',
`source` tinyint NOT NULL DEFAULT 1 COMMENT '来源: 1=web, 2=H5, 3=小程序, 4=APP',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=正常, 2=待激活',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP',
`login_fail_count` int NOT NULL DEFAULT 0 COMMENT '登录失败次数',
`login_fail_time` datetime DEFAULT NULL COMMENT '最后失败时间',
`reg_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
`reg_ip` varchar(50) DEFAULT '' COMMENT '注册IP',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_member_code` (`member_code`),
UNIQUE KEY `uk_phone` (`phone`),
KEY `idx_status` (`status`),
KEY `idx_member_level` (`member_level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员表';4.2 mem_team - 团队表
CREATE TABLE `mem_team` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '团队ID',
`team_code` varchar(32) NOT NULL COMMENT '团队编码',
`team_name` varchar(100) NOT NULL COMMENT '团队名称',
`team_logo` varchar(255) DEFAULT '' COMMENT '团队Logo',
`team_desc` varchar(500) DEFAULT '' COMMENT '团队简介',
`team_type` tinyint NOT NULL DEFAULT 1 COMMENT '团队类型: 1=个人, 2=企业',
`owner_id` bigint NOT NULL COMMENT '团队创始人ID',
`member_count` int NOT NULL DEFAULT 1 COMMENT '成员数量',
`project_count` int NOT NULL DEFAULT 0 COMMENT '项目数量',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=正常',
`expire_time` datetime DEFAULT NULL COMMENT '到期时间',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_team_code` (`team_code`),
KEY `idx_owner_id` (`owner_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队表';4.3 mem_team_member - 团队成员表
CREATE TABLE `mem_team_member` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '成员ID',
`team_id` bigint NOT NULL COMMENT '团队ID',
`member_id` bigint NOT NULL COMMENT '会员ID',
`role` tinyint NOT NULL DEFAULT 1 COMMENT '角色: 1=owner/负责人, 2=admin/管理员, 3=member/成员',
`position` tinyint DEFAULT NULL COMMENT '岗位: 1=导演, 2=前期, 3=后期, 4=编剧',
`nickname` varchar(50) DEFAULT '' COMMENT '团队内昵称',
`avatar` varchar(255) DEFAULT '' COMMENT '团队头像',
`is_default` tinyint NOT NULL DEFAULT 0 COMMENT '是否默认团队: 0=否, 1=是',
`daily_point_limit` int NOT NULL DEFAULT 0 COMMENT '每日积分限额(0=不限)',
`total_point_limit` int NOT NULL DEFAULT 0 COMMENT '累计积分限额(0=不限)',
`used_points` bigint NOT NULL DEFAULT 0 COMMENT '已使用积分',
`join_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间',
`invite_by` bigint DEFAULT NULL COMMENT '邀请人',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=已退出, 1=正常, 2=已邀请待确认',
`leave_time` datetime DEFAULT NULL COMMENT '离开时间',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_team_member` (`team_id`, `member_id`),
KEY `idx_member_id` (`member_id`),
KEY `idx_role` (`role`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队成员表';4.4 mem_points - 积分账户表
CREATE TABLE `mem_points` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '账户ID',
`member_id` bigint NOT NULL COMMENT '会员ID',
`team_id` bigint DEFAULT NULL COMMENT '团队ID(可为null表示个人账户)',
`points` bigint NOT NULL DEFAULT 0 COMMENT '可用积分',
`freeze_points` bigint NOT NULL DEFAULT 0 COMMENT '冻结积分',
`total_income` bigint NOT NULL DEFAULT 0 COMMENT '累计收入',
`total_expense` bigint NOT NULL DEFAULT 0 COMMENT '累计支出',
`version` int NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_member_team` (`member_id`, `team_id`),
KEY `idx_member_id` (`member_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='积分账户表';4.5 mem_points_log - 积分变动日志表
CREATE TABLE `mem_points_log` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`member_id` bigint NOT NULL COMMENT '会员ID',
`team_id` bigint DEFAULT NULL COMMENT '团队ID',
`task_id` varchar(50) DEFAULT '' COMMENT '关联任务ID',
`change_type` tinyint NOT NULL COMMENT '变动类型: 1=充值, 2=消费, 3=赠送, 4=返还, 5=退款, 6=冻结, 7=解冻',
`points_before` bigint NOT NULL COMMENT '变动前积分',
`points_change` bigint NOT NULL COMMENT '变动积分(正负)',
`points_after` bigint NOT NULL COMMENT '变动后积分',
`freeze_before` bigint NOT NULL DEFAULT 0 COMMENT '冻结前积分',
`freeze_change` bigint NOT NULL DEFAULT 0 COMMENT '冻结变动',
`freeze_after` bigint NOT NULL DEFAULT 0 COMMENT '冻结后积分',
`source` tinyint NOT NULL DEFAULT 1 COMMENT '来源: 1=系统, 2=充值, 3=任务, 4=活动',
`order_no` varchar(64) DEFAULT '' COMMENT '订单号',
`description` varchar(500) DEFAULT '' COMMENT '变动描述',
`operator_id` bigint DEFAULT NULL COMMENT '操作人ID',
`ip_addr` varchar(50) DEFAULT '' COMMENT 'IP地址',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_member_id` (`member_id`),
KEY `idx_team_id` (`team_id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_change_type` (`change_type`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mbmb4 COLLATE=utf8mb4_unicode_ci COMMENT='积分变动日志表';4.6 mem_recharge_plan - 充值方案表
CREATE TABLE `mem_recharge_plan` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '方案ID',
`plan_name` varchar(100) NOT NULL COMMENT '方案名称',
`plan_type` tinyint NOT NULL DEFAULT 1 COMMENT '方案类型: 1=积分, 2=会员',
`original_price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '原价',
`sale_price` decimal(10,2) NOT NULL COMMENT '售价',
`give_points` bigint NOT NULL DEFAULT 0 COMMENT '赠送积分',
`give_days` int NOT NULL DEFAULT 0 COMMENT '赠送会员天数',
`points` bigint NOT NULL COMMENT '获得积分(含赠送)',
`minute_estimate` int NOT NULL DEFAULT 0 COMMENT '预计可制作分钟数',
`discount_rate` decimal(5,2) DEFAULT NULL COMMENT '算力折扣',
`stock` int DEFAULT NULL COMMENT '库存(-1=无限)',
`sales_count` int NOT NULL DEFAULT 0 COMMENT '已售数量',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`is_recommend` tinyint NOT NULL DEFAULT 0 COMMENT '是否推荐: 0=否, 1=是',
`is_default` tinyint NOT NULL DEFAULT 0 COMMENT '是否默认选中: 0=否, 1=是',
`pay_types` varchar(100) DEFAULT '' COMMENT '支付方式: alipay,wxpay,bank',
`valid_days` int NOT NULL DEFAULT 0 COMMENT '有效期(天,0=永久)',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=下架, 1=上架',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_plan_type` (`plan_type`),
KEY `idx_status` (`status`),
KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='充值方案表';4.7 mem_recharge_order - 充值订单表
CREATE TABLE `mem_recharge_order` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`member_id` bigint NOT NULL COMMENT '会员ID',
`team_id` bigint DEFAULT NULL COMMENT '团队ID',
`plan_id` bigint NOT NULL COMMENT '充值方案ID',
`plan_name` varchar(100) NOT NULL COMMENT '方案名称',
`original_price` decimal(10,2) NOT NULL COMMENT '原价',
`actual_price` decimal(10,2) NOT NULL COMMENT '实付金额',
`give_points` bigint NOT NULL DEFAULT 0 COMMENT '赠送积分',
`total_points` bigint NOT NULL COMMENT '获得总积分',
`pay_type` varchar(20) DEFAULT '' COMMENT '支付方式',
`pay_status` tinyint NOT NULL DEFAULT 0 COMMENT '支付状态: 0=待支付, 1=支付中, 2=已支付, 3=已取消, 4=已退款',
`pay_time` datetime DEFAULT NULL COMMENT '支付时间',
`pay_trade_no` varchar(64) DEFAULT '' COMMENT '支付流水号',
`expire_time` datetime DEFAULT NULL COMMENT '订单过期时间',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_member_id` (`member_id`),
KEY `idx_plan_id` (`plan_id`),
KEY `idx_pay_status` (`pay_status`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='充值订单表';4.8 mem_voice - 音色配置表
CREATE TABLE `mem_voice` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '音色ID',
`voice_code` varchar(50) NOT NULL COMMENT '音色编码',
`voice_name` varchar(100) NOT NULL COMMENT '音色名称',
`voice_url` varchar(500) DEFAULT '' COMMENT '音色示例URL',
`provider` varchar(50) DEFAULT '' COMMENT '提供商',
`gender` tinyint DEFAULT NULL COMMENT '性别: 1=男, 2=女, 3=通用',
`age_range` tinyint DEFAULT NULL COMMENT '年龄段: 1=儿童, 2=青年, 3=中年, 4=老年',
`language` varchar(20) DEFAULT 'zh-CN' COMMENT '语言',
`style_tags` varchar(255) DEFAULT '' COMMENT '风格标签(逗号分隔)',
`is_trial` tinyint NOT NULL DEFAULT 1 COMMENT '是否可试用: 0=否, 1=是',
`cost_points` int NOT NULL DEFAULT 0 COMMENT '消耗积分/分钟',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=启用',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_voice_code` (`voice_code`),
KEY `idx_gender` (`gender`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='音色配置表';4.9 mem_sms_code - 短信验证码表
CREATE TABLE `mem_sms_code` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`phone` varchar(20) NOT NULL COMMENT '手机号',
`code` varchar(10) NOT NULL COMMENT '验证码',
`scene` varchar(30) NOT NULL COMMENT '场景: login=登录, register=注册, bind=绑定, reset_pwd=重置密码',
`ip_addr` varchar(50) DEFAULT '' COMMENT 'IP地址',
`send_status` tinyint NOT NULL DEFAULT 1 COMMENT '发送状态: 0=失败, 1=成功',
`verify_status` tinyint NOT NULL DEFAULT 0 COMMENT '验证状态: 0=未验证, 1=已验证, 2=已失效',
`verify_time` datetime DEFAULT NULL COMMENT '验证时间',
`expire_time` datetime NOT NULL COMMENT '过期时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_phone_scene` (`phone`, `scene`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信验证码表';五、项目模块(prj_*)
5.1 prj_project - 项目表
核心项目表,存储视频/剧本创作项目。
CREATE TABLE `prj_project` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '项目ID',
`project_no` varchar(32) NOT NULL COMMENT '项目编号',
`project_name` varchar(200) NOT NULL COMMENT '项目名称',
`project_type` tinyint NOT NULL DEFAULT 1 COMMENT '项目类型: 1=自由创作, 2=Agent模式',
`team_id` bigint NOT NULL COMMENT '团队ID',
`owner_id` bigint NOT NULL COMMENT '项目负责人',
`cover_image` varchar(500) DEFAULT '' COMMENT '封面图片URL',
`description` text COMMENT '项目描述',
`aspect_ratio` tinyint NOT NULL DEFAULT 1 COMMENT '画面比例: 1=16:9横屏, 2=9:16竖屏, 3=1:1方形',
`resolution` varchar(20) DEFAULT '1920x1080' COMMENT '分辨率',
`video_duration` int DEFAULT 0 COMMENT '预估视频时长(秒)',
`style_preset` varchar(100) DEFAULT '' COMMENT '视觉风格预设',
`style_prompt` text COMMENT '风格提示词',
`narrative_rhythm` varchar(50) DEFAULT '' COMMENT '叙事节奏',
`split_mode` tinyint NOT NULL DEFAULT 1 COMMENT '拆分模式: 1=智能拆分, 2=手动拆分',
`work_mode` tinyint DEFAULT NULL COMMENT '创作模式: 1=首图模式, 2=多参模式',
`default_model_id` bigint DEFAULT NULL COMMENT '默认视频模型ID',
`pipeline_id` varchar(100) DEFAULT '' COMMENT '第三方Pipeline ID',
`pipeline_status` varchar(30) DEFAULT '' COMMENT 'Pipeline状态',
`pipeline_progress` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '管道进度 0-100',
`word_count` int NOT NULL DEFAULT 0 COMMENT '剧本字数',
`episode_count` int NOT NULL DEFAULT 0 COMMENT '集数',
`source_file` varchar(500) DEFAULT '' COMMENT '原始文件路径',
`source_type` varchar(30) DEFAULT 'novel' COMMENT '文件类型: novel=小说, screenplay=剧本',
`is_append` tinyint NOT NULL DEFAULT 0 COMMENT '是否有追加分集: 0=否, 1=是',
`tags` varchar(255) DEFAULT '' COMMENT '标签(逗号分隔)',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=已归档, 1=进行中, 2=已完成',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_project_no` (`project_no`),
KEY `idx_team_id` (`team_id`),
KEY `idx_owner_id` (`owner_id`),
KEY `idx_status` (`status`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目表';5.2 prj_volume - 分集表
CREATE TABLE `prj_volume` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分集ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`volume_no` int NOT NULL COMMENT '集号',
`volume_title` varchar(200) DEFAULT '' COMMENT '集标题',
`cover_image` varchar(500) DEFAULT '' COMMENT '封面图片',
`synopsis` text COMMENT '分集概要',
`episode_plan` text COMMENT '分集方案JSON',
`episode_number` int DEFAULT NULL COMMENT '预计集数',
`chapter_start` int DEFAULT 1 COMMENT '起始章节',
`chapter_end` int DEFAULT 1 COMMENT '结束章节',
`estimated_duration` int DEFAULT 0 COMMENT '预估时长(分钟)',
`work_mode` tinyint DEFAULT NULL COMMENT '视频模式: 1=首图, 2=多参',
`split_mode` varchar(30) DEFAULT 'manual' COMMENT '分集方式: import=导入, manual=手动, agent=agent',
`import_file` varchar(500) DEFAULT '' COMMENT '导入文件路径',
`ai_episode_id` varchar(100) DEFAULT '' COMMENT 'AI分集ID',
`pipeline_status` varchar(30) DEFAULT '' COMMENT 'Pipeline状态',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=未开始, 1=进行中, 2=已完成',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_project_volume` (`project_id`, `volume_no`),
KEY `idx_project_id` (`project_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分集表';5.3 prj_volume_episode - 分集方案表
CREATE TABLE `prj_volume_episode` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '方案ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`volume_id` bigint NOT NULL COMMENT '分集ID',
`version` varchar(30) NOT NULL COMMENT '版本号',
`is_current` tinyint NOT NULL DEFAULT 1 COMMENT '是否当前版本: 0=否, 1=是',
`planning_method` varchar(30) DEFAULT '' COMMENT '规划方式: auto=自动, manual=手动',
`episodes_data` longtext COMMENT '分集数据JSON',
`total_episodes` int NOT NULL DEFAULT 1 COMMENT '总集数',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_volume_id` (`volume_id`),
KEY `idx_is_current` (`is_current`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分集方案表';5.4 prj_chapter - 章节表
CREATE TABLE `prj_chapter` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '章节ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`volume_id` bigint DEFAULT NULL COMMENT '分集ID',
`chapter_no` int NOT NULL COMMENT '章节序号',
`chapter_title` varchar(200) DEFAULT '' COMMENT '章节标题',
`content` longtext COMMENT '章节内容',
`word_count` int NOT NULL DEFAULT 0 COMMENT '字数',
`detection_method` varchar(50) DEFAULT '' COMMENT '检测方式',
`summary` text COMMENT '章节摘要',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=未处理, 1=已处理',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_volume_id` (`volume_id`),
KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='章节表';5.5 prj_script - 剧本表
CREATE TABLE `prj_script` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '剧本ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`volume_id` bigint DEFAULT NULL COMMENT '分集ID',
`version` varchar(30) NOT NULL COMMENT '版本号',
`is_current` tinyint NOT NULL DEFAULT 1 COMMENT '是否当前版本: 0=否, 1=是',
`content` longtext COMMENT '剧本内容',
`shot_ids` text COMMENT '关联分镜ID列表JSON',
`ai_script_id` varchar(100) DEFAULT '' COMMENT 'AI剧本ID',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_volume_id` (`volume_id`),
KEY `idx_is_current` (`is_current`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='剧本表';5.6 prj_shot - 分镜表
核心分镜表,记录每个镜头的详细信息。
CREATE TABLE `prj_shot` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分镜ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`volume_id` bigint NOT NULL COMMENT '分集ID',
`shot_no` int NOT NULL COMMENT '镜号',
`shot_type` tinyint DEFAULT 1 COMMENT '镜头类型: 1=远景, 2=全景, 3=中景, 4=近景, 5=特写, 6=其他',
`location` varchar(200) DEFAULT '' COMMENT '拍摄地点',
`time_of_day` tinyint DEFAULT 1 COMMENT '时间段: 1=日出, 2=上午, 3=中午, 4=下午, 5=黄昏, 6=夜晚, 7=凌晨',
`description` text COMMENT '镜头描述/分镜文案',
`visual_prompt` text COMMENT '视觉提示词(用于AI生成)',
`dialogue` text COMMENT '对话内容',
`narration` text COMMENT '旁白/解说',
`duration` decimal(6,2) NOT NULL DEFAULT 0.00 COMMENT '预估时长(秒)',
`character_appearances` text COMMENT '出场角色JSON',
`props` text COMMENT '道具/物品JSON',
`cinematography` text COMMENT '摄影指导',
`music_suggestion` varchar(500) DEFAULT '' COMMENT '音乐建议',
`sound_effects` varchar(500) DEFAULT '' COMMENT '音效建议',
`shot_image` varchar(500) DEFAULT '' COMMENT '分镜图片URL',
`ai_prompt` text COMMENT 'AI生成用完整提示词',
`style_config` text COMMENT '风格配置JSON',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=草稿, 1=已确认, 2=生成中, 3=已完成',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_volume_id` (`volume_id`),
KEY `idx_status` (`status`),
KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分镜表';5.7 prj_shot_image - 分镜图片表
CREATE TABLE `prj_shot_image` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '图片ID',
`shot_id` bigint NOT NULL COMMENT '分镜ID',
`task_id` varchar(50) DEFAULT '' COMMENT 'AI任务ID',
`image_url` varchar(500) DEFAULT '' COMMENT '图片URL',
`thumbnail_url` varchar(500) DEFAULT '' COMMENT '缩略图URL',
`prompt` text COMMENT '生成提示词',
`negative_prompt` text COMMENT '反向提示词',
`model_id` bigint DEFAULT NULL COMMENT '使用模型ID',
`model_params` text COMMENT '模型参数JSON',
`width` int DEFAULT NULL COMMENT '宽度',
`height` int DEFAULT NULL COMMENT '高度',
`is_used` tinyint NOT NULL DEFAULT 0 COMMENT '是否采用: 0=未采用, 1=已采用',
`use_type` tinyint DEFAULT NULL COMMENT '用途: 1=角色图, 2=场景图, 3=参考图',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=生成失败, 1=生成中, 2=已生成',
`error_message` varchar(500) DEFAULT '' COMMENT '错误信息',
`generate_time` datetime DEFAULT NULL COMMENT '生成时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_shot_id` (`shot_id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_is_used` (`is_used`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分镜图片表';5.8 prj_shot_video - 分镜视频表
CREATE TABLE `prj_shot_video` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '视频ID',
`shot_id` bigint NOT NULL COMMENT '分镜ID',
`task_id` varchar(50) DEFAULT '' COMMENT 'AI任务ID',
`video_url` varchar(500) DEFAULT '' COMMENT '视频URL',
`thumbnail_url` varchar(500) DEFAULT '' COMMENT '视频封面URL',
`duration` int DEFAULT 0 COMMENT '视频时长(秒)',
`file_size` bigint DEFAULT NULL COMMENT '文件大小(字节)',
`resolution` varchar(20) DEFAULT '' COMMENT '分辨率',
`format` varchar(20) DEFAULT '' COMMENT '视频格式',
`prompt` text COMMENT '生成提示词',
`negative_prompt` text COMMENT '反向提示词',
`reference_images` text COMMENT '参考图片JSON',
`model_id` bigint DEFAULT NULL COMMENT '使用模型ID',
`model_params` text COMMENT '模型参数JSON',
`is_used` tinyint NOT NULL DEFAULT 0 COMMENT '是否采用: 0=未采用, 1=已采用',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=生成失败, 1=生成中, 2=已生成',
`progress` int NOT NULL DEFAULT 0 COMMENT '生成进度 0-100',
`error_message` varchar(500) DEFAULT '' COMMENT '错误信息',
`generate_time` datetime DEFAULT NULL COMMENT '生成时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_shot_id` (`shot_id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_is_used` (`is_used`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分镜视频表';5.9 prj_shot_asset - 分镜素材关联表
CREATE TABLE `prj_shot_asset` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`shot_id` bigint NOT NULL COMMENT '分镜ID',
`asset_type` tinyint NOT NULL COMMENT '素材类型: 1=角色, 2=场景, 3=物品',
`asset_id` bigint NOT NULL COMMENT '素材ID',
`usage_type` tinyint NOT NULL DEFAULT 1 COMMENT '用途: 1=出场, 2=参考, 3=背景',
`prompt_text` text COMMENT '关联提示词',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_shot_id` (`shot_id`),
KEY `idx_asset` (`asset_type`, `asset_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分镜素材关联表';5.10 prj_aspect_style - 画风风格表
CREATE TABLE `prj_aspect_style` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '风格ID',
`style_code` varchar(50) NOT NULL COMMENT '风格编码',
`style_name` varchar(100) NOT NULL COMMENT '风格名称',
`style_tags` varchar(255) DEFAULT '' COMMENT '风格标签',
`preview_images` text COMMENT '预览图JSON数组',
`prompt_template` text COMMENT '提示词模板',
`negative_prompt` text COMMENT '反向提示词',
`style_config` text COMMENT '风格配置JSON',
`is_system` tinyint NOT NULL DEFAULT 1 COMMENT '是否系统预设: 0=否, 1=是',
`team_id` bigint DEFAULT NULL COMMENT '团队ID(自定义风格)',
`use_count` int NOT NULL DEFAULT 0 COMMENT '使用次数',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=启用',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_style_code` (`style_code`),
KEY `idx_team_id` (`team_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='画风风格表';5.11 prj_asset_character - 角色资产表
CREATE TABLE `prj_asset_character` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`character_no` varchar(30) NOT NULL COMMENT '角色编号',
`character_name` varchar(100) NOT NULL COMMENT '角色名称',
`character_alias` text COMMENT '角色别名/曾用名',
`character_type` varchar(50) DEFAULT '' COMMENT '角色类型: protagonist=主角, supporting=配角, cameo=客串',
`gender` tinyint DEFAULT NULL COMMENT '性别: 1=男, 2=女, 3=未知',
`age_range` varchar(30) DEFAULT '' COMMENT '年龄段',
`personality` varchar(255) DEFAULT '' COMMENT '性格特点',
`appearance` text COMMENT '外貌描述',
`background` text COMMENT '背景故事',
`role_description` text COMMENT '角色定位描述',
`cover_image` varchar(500) DEFAULT '' COMMENT '角色封面图',
`ai_character_id` varchar(100) DEFAULT '' COMMENT 'AI角色ID',
`default_voice_id` bigint DEFAULT NULL COMMENT '默认音色ID',
`appearance_count` int NOT NULL DEFAULT 0 COMMENT '出场次数',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=已归档, 1=正常',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_project_character` (`project_id`, `character_no`),
KEY `idx_project_id` (`project_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色资产表';5.12 prj_asset_character_status - 角色状态表
角色在不同场景/情节下的具体形象状态。
CREATE TABLE `prj_asset_character_status` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '状态ID',
`character_id` bigint NOT NULL COMMENT '角色ID',
`status_no` varchar(30) NOT NULL COMMENT '状态编号',
`status_name` varchar(100) NOT NULL COMMENT '状态名称(如:日常装、战斗装)',
`label` varchar(100) DEFAULT '' COMMENT '标签',
`description` text COMMENT '状态描述',
`appearance_detail` text COMMENT '外观细节描述',
`visual_prompt` text COMMENT '视觉提示词(AI生成用)',
`costume_description` text COMMENT '服装描述',
`hairstyle_description` text COMMENT '发型描述',
`expression` varchar(100) DEFAULT '' COMMENT '表情',
`pose` varchar(100) DEFAULT '' COMMENT '姿态',
`image_url` varchar(500) DEFAULT '' COMMENT '形象图片URL',
`thumbnail_url` varchar(500) DEFAULT '' COMMENT '缩略图URL',
`ai_image_id` varchar(100) DEFAULT '' COMMENT 'AI生成图片ID',
`voice_id` bigint DEFAULT NULL COMMENT '音色ID',
`voice_description` text COMMENT '音色描述',
`task_id` varchar(50) DEFAULT '' COMMENT '关联任务ID',
`shot_ids` text COMMENT '出场分镜ID列表',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=未生成, 1=生成中, 2=已生成',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_character_status` (`character_id`, `status_no`),
KEY `idx_character_id` (`character_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色状态表';5.13 prj_asset_scene - 场景资产表
CREATE TABLE `prj_asset_scene` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '场景ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父场景ID(0=顶级)',
`scene_no` varchar(30) NOT NULL COMMENT '场景编号',
`scene_name` varchar(200) NOT NULL COMMENT '场景名称',
`scene_type` varchar(50) DEFAULT '' COMMENT '场景类型: interior=室内, exterior=室外, fantasy=幻想',
`location` varchar(200) DEFAULT '' COMMENT '具体地点',
`time_of_day` tinyint DEFAULT NULL COMMENT '时间段',
`weather` varchar(50) DEFAULT '' COMMENT '天气状况',
`description` text COMMENT '场景描述',
`visual_prompt` text COMMENT '视觉提示词',
`props_list` text COMMENT '场景道具列表JSON',
`image_url` varchar(500) DEFAULT '' COMMENT '场景图片URL',
`thumbnail_url` varchar(500) DEFAULT '' COMMENT '缩略图URL',
`ai_scene_id` varchar(100) DEFAULT '' COMMENT 'AI场景ID',
`appearance_count` int NOT NULL DEFAULT 0 COMMENT '出场次数',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=已归档, 1=正常',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_project_scene` (`project_id`, `scene_no`),
KEY `idx_project_id` (`project_id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='场景资产表';5.14 prj_asset_prop - 物品资产表
CREATE TABLE `prj_asset_prop` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '物品ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`prop_no` varchar(30) NOT NULL COMMENT '物品编号',
`prop_name` varchar(100) NOT NULL COMMENT '物品名称',
`prop_alias` text COMMENT '物品别名',
`prop_type` varchar(50) DEFAULT '' COMMENT '物品类型',
`importance` varchar(20) DEFAULT '' COMMENT '重要性: major=主要, secondary=次要, background=背景',
`description` text COMMENT '物品描述',
`visual_prompt` text COMMENT '视觉提示词',
`cover_image` varchar(500) DEFAULT '' COMMENT '物品图片URL',
`ai_prop_id` varchar(100) DEFAULT '' COMMENT 'AI物品ID',
`appearance_count` int NOT NULL DEFAULT 0 COMMENT '出场次数',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=已归档, 1=正常',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_project_prop` (`project_id`, `prop_no`),
KEY `idx_project_id` (`project_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品资产表';5.15 prj_asset_prop_status - 物品状态表
CREATE TABLE `prj_asset_prop_status` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '状态ID',
`prop_id` bigint NOT NULL COMMENT '物品ID',
`status_no` varchar(30) NOT NULL COMMENT '状态编号',
`status_name` varchar(100) NOT NULL COMMENT '状态名称',
`description` text COMMENT '状态描述',
`visual_prompt` text COMMENT '视觉提示词',
`image_url` varchar(500) DEFAULT '' COMMENT '物品图片URL',
`thumbnail_url` varchar(500) DEFAULT '' COMMENT '缩略图URL',
`ai_image_id` varchar(100) DEFAULT '' COMMENT 'AI生成图片ID',
`task_id` varchar(50) DEFAULT '' COMMENT '关联任务ID',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=未生成, 1=生成中, 2=已生成',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_prop_status` (`prop_id`, `status_no`),
KEY `idx_prop_id` (`prop_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品状态表';六、AI模块(ai_*)
6.1 ai_model - AI模型表
CREATE TABLE `ai_model` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '模型ID',
`model_code` varchar(50) NOT NULL COMMENT '模型编码',
`model_name` varchar(100) NOT NULL COMMENT '模型名称',
`model_type` tinyint NOT NULL COMMENT '模型类型: 1=视频生成, 2=图片生成, 3=语音合成, 4=文字处理',
`provider` varchar(50) NOT NULL COMMENT '提供商: hunyuan=混元, wan=WAN, jimeng=即梦',
`provider_model_name` varchar(100) DEFAULT '' COMMENT '提供商模型名',
`model_version` varchar(50) DEFAULT '' COMMENT '模型版本',
`description` text COMMENT '模型描述',
`default_prompt` text COMMENT '默认提示词模板',
`support_reference` tinyint NOT NULL DEFAULT 1 COMMENT '支持参考图: 0=不支持, 1=支持',
`max_reference_num` int NOT NULL DEFAULT 0 COMMENT '最大参考图数量',
`support_frame` varchar(100) DEFAULT '' COMMENT '支持的帧模式: first=首帧, last=尾帧, both=首尾帧, all=全能',
`support_audio` varchar(100) DEFAULT '' COMMENT '支持的音频质量: draft/std/pro',
`max_video_duration` int DEFAULT 0 COMMENT '最大视频时长(秒)',
`support_aspect_ratio` varchar(100) DEFAULT '' COMMENT '支持的画面比例',
`support_resolution` varchar(200) DEFAULT '' COMMENT '支持的分辨率',
`work_modes` varchar(100) DEFAULT '' COMMENT '支持的创作模式: first_image=首图, multi_param=多参',
`is_default` tinyint NOT NULL DEFAULT 0 COMMENT '是否默认模型: 0=否, 1=是',
`is_trial` tinyint NOT NULL DEFAULT 1 COMMENT '是否可试用: 0=否, 1=是',
`trial_quota` int NOT NULL DEFAULT 0 COMMENT '试用额度(次)',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=维护中, 1=正常, 2=已下线',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_model_code` (`model_code`),
KEY `idx_model_type` (`model_type`),
KEY `idx_provider` (`provider`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI模型表';6.2 ai_model_sku - 模型规格表
CREATE TABLE `ai_model_sku` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '规格ID',
`model_id` bigint NOT NULL COMMENT '模型ID',
`sku_code` varchar(50) NOT NULL COMMENT '规格编码',
`sku_name` varchar(100) NOT NULL COMMENT '规格名称',
`spec_type` tinyint DEFAULT NULL COMMENT '规格类型: 1=时长, 2=分辨率, 3=质量',
`spec_value` varchar(100) DEFAULT '' COMMENT '规格值',
`spec_unit` varchar(20) DEFAULT '' COMMENT '规格单位',
`points_cost` int NOT NULL DEFAULT 0 COMMENT '积分消耗',
`description` text COMMENT '规格描述',
`sort` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=停用, 1=启用',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_model_sku` (`model_id`, `sku_code`),
KEY `idx_model_id` (`model_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='模型规格表';6.3 ai_model_config - 模型配置表
CREATE TABLE `ai_model_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`model_id` bigint NOT NULL COMMENT '模型ID',
`config_key` varchar(100) NOT NULL COMMENT '配置键',
`config_value` text COMMENT '配置值',
`config_type` varchar(50) DEFAULT '' COMMENT '配置类型: api_key=密钥, endpoint=端点, param=参数',
`is_encrypt` tinyint NOT NULL DEFAULT 0 COMMENT '是否加密: 0=否, 1=是',
`description` varchar(255) DEFAULT '' COMMENT '配置描述',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=停用, 1=启用',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_model_id` (`model_id`),
KEY `idx_config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='模型配置表';6.4 ai_task - AI任务表
核心任务表,记录所有AI生成任务。
CREATE TABLE `ai_task` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID',
`task_no` varchar(32) NOT NULL COMMENT '任务编号',
`task_type` tinyint NOT NULL COMMENT '任务类型: 1=文生视频, 2=图生视频, 3=文生图, 4=图生图',
`project_id` bigint DEFAULT NULL COMMENT '项目ID',
`volume_id` bigint DEFAULT NULL COMMENT '分集ID',
`shot_id` bigint DEFAULT NULL COMMENT '分镜ID',
`asset_id` bigint DEFAULT NULL COMMENT '资产ID(角色/场景/物品)',
`asset_type` tinyint DEFAULT NULL COMMENT '资产类型: 1=角色, 2=场景, 3=物品',
`team_id` bigint NOT NULL COMMENT '团队ID',
`member_id` bigint NOT NULL COMMENT '用户ID',
`model_id` bigint NOT NULL COMMENT '模型ID',
`model_code` varchar(50) NOT NULL COMMENT '模型编码',
`provider` varchar(50) NOT NULL COMMENT '提供商',
`prompt` text NOT NULL COMMENT '正向提示词',
`negative_prompt` text COMMENT '反向提示词',
`input_assets` text COMMENT '输入素材(参考图等)JSON',
`params` text COMMENT '扩展参数JSON',
`aspect_ratio` varchar(20) DEFAULT '' COMMENT '画面比例',
`resolution` varchar(20) DEFAULT '' COMMENT '分辨率',
`duration` int DEFAULT 0 COMMENT '视频时长(秒)',
`vip_weight` int NOT NULL DEFAULT 0 COMMENT 'VIP权重(优先级)',
`cost_points` int NOT NULL DEFAULT 0 COMMENT '消耗积分',
`actual_deduct_member_id` bigint DEFAULT NULL COMMENT '实际扣积分人员ID',
`source` varchar(50) DEFAULT '' COMMENT '任务来源: manual=手动, auto=自动, api=API',
`source_id` varchar(100) DEFAULT '' COMMENT '来源ID',
`provider_task_id` varchar(100) DEFAULT '' COMMENT '第三方任务ID',
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态: pending=待处理, queued=排队中, processing=处理中, success=成功, failed=失败, cancelled=已取消',
`progress` int NOT NULL DEFAULT 0 COMMENT '进度 0-100',
`output_assets` text COMMENT '输出结果JSON',
`error_code` varchar(50) DEFAULT '' COMMENT '错误码',
`error_message` text COMMENT '错误信息',
`callback_times` int NOT NULL DEFAULT 0 COMMENT '回调次数',
`last_callback_time` datetime DEFAULT NULL COMMENT '最后回调时间',
`retry_times` int NOT NULL DEFAULT 0 COMMENT '重试次数',
`max_retry_times` int NOT NULL DEFAULT 3 COMMENT '最大重试次数',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`cost_time` int DEFAULT NULL COMMENT '消耗时间(秒)',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志: 0=未删除, 1=已删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_no` (`task_no`),
KEY `idx_team_id` (`team_id`),
KEY `idx_member_id` (`member_id`),
KEY `idx_model_id` (`model_id`),
KEY `idx_provider_task_id` (`provider_task_id`),
KEY `idx_status` (`status`),
KEY `idx_create_time` (`create_time`),
KEY `idx_project_shot` (`project_id`, `shot_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI任务表';6.5 ai_task_callback - 任务回调记录表
CREATE TABLE `ai_task_callback` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`task_id` bigint NOT NULL COMMENT '任务ID',
`provider` varchar(50) NOT NULL COMMENT '提供商',
`callback_url` varchar(500) DEFAULT '' COMMENT '回调URL',
`request_body` text COMMENT '回调请求体',
`response_body` text COMMENT '回调响应体',
`callback_status` varchar(20) DEFAULT '' COMMENT '回调状态',
`error_message` varchar(500) DEFAULT '' COMMENT '错误信息',
`callback_time` datetime DEFAULT NULL COMMENT '回调时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_callback_time` (`callback_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务回调记录表';6.6 ai_generated_asset - AI生成素材表
CREATE TABLE `ai_generated_asset` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`asset_type` tinyint NOT NULL COMMENT '素材类型: 1=图片, 2=视频, 3=音频',
`task_id` bigint NOT NULL COMMENT '任务ID',
`project_id` bigint NOT NULL COMMENT '项目ID',
`asset_id` bigint DEFAULT NULL COMMENT '关联资产ID',
`asset_target_type` tinyint DEFAULT NULL COMMENT '资产目标类型: 1=角色, 2=场景, 3=物品',
`url` varchar(500) NOT NULL COMMENT '资源URL',
`thumbnail_url` varchar(500) DEFAULT '' COMMENT '缩略图URL',
`file_size` bigint DEFAULT NULL COMMENT '文件大小(字节)',
`width` int DEFAULT NULL COMMENT '宽度',
`height` int DEFAULT NULL COMMENT '高度',
`duration` int DEFAULT NULL COMMENT '时长(秒,视频/音频)',
`format` varchar(20) DEFAULT '' COMMENT '格式',
`prompt` text COMMENT '生成提示词',
`model_id` bigint DEFAULT NULL COMMENT '使用模型ID',
`is_used` tinyint NOT NULL DEFAULT 0 COMMENT '是否被使用: 0=否, 1=是',
`use_count` int NOT NULL DEFAULT 0 COMMENT '被使用次数',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=已删除, 1=正常',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_asset_id` (`asset_id`),
KEY `idx_is_used` (`is_used`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI生成素材表';七、文件模块(file_*)
7.1 file_attachment - 附件表
CREATE TABLE `file_attachment` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '附件ID',
`file_code` varchar(50) NOT NULL COMMENT '文件编码',
`file_name` varchar(255) NOT NULL COMMENT '文件名',
`file_path` varchar(500) NOT NULL COMMENT '文件路径',
`file_url` varchar(500) NOT NULL COMMENT '访问URL',
`file_size` bigint NOT NULL COMMENT '文件大小(字节)',
`file_ext` varchar(20) DEFAULT '' COMMENT '文件扩展名',
`mime_type` varchar(100) DEFAULT '' COMMENT 'MIME类型',
`file_type` tinyint NOT NULL COMMENT '文件类型: 1=图片, 2=视频, 3=音频, 4=文档, 5=其他',
`storage_type` tinyint NOT NULL DEFAULT 1 COMMENT '存储类型: 1=本地, 2=MinIO, 3=OSS, 4=S3',
`bucket_name` varchar(100) DEFAULT '' COMMENT '存储桶名称',
`width` int DEFAULT NULL COMMENT '图片/视频宽度',
`height` int DEFAULT NULL COMMENT '图片/视频高度',
`duration` int DEFAULT NULL COMMENT '音视频时长(秒)',
`video_duration` int DEFAULT NULL COMMENT '视频时长(秒)',
`thumbnail_url` varchar(500) DEFAULT '' COMMENT '缩略图URL',
`sha256` varchar(64) DEFAULT '' COMMENT '文件SHA256',
`upload_type` tinyint NOT NULL DEFAULT 1 COMMENT '上传方式: 1=普通, 2=分片',
`uploader_type` tinyint NOT NULL COMMENT '上传者类型: 1=系统用户, 2=会员',
`uploader_id` bigint NOT NULL COMMENT '上传者ID',
`biz_type` varchar(50) DEFAULT '' COMMENT '业务类型',
`biz_id` varchar(50) DEFAULT '' COMMENT '业务ID',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=正常',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_file_code` (`file_code`),
KEY `idx_uploader` (`uploader_type`, `uploader_id`),
KEY `idx_file_type` (`file_type`),
KEY `idx_biz` (`biz_type`, `biz_id`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='附件表';7.2 file_download_task - 文件下载任务表
CREATE TABLE `file_download_task` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID',
`task_no` varchar(32) NOT NULL COMMENT '任务编号',
`task_name` varchar(200) NOT NULL COMMENT '任务名称',
`file_count` int NOT NULL DEFAULT 1 COMMENT '文件数量',
`total_size` bigint NOT NULL DEFAULT 0 COMMENT '总大小(字节)',
`download_type` tinyint NOT NULL DEFAULT 1 COMMENT '下载类型: 1=单文件, 2=打包下载',
`file_ids` text COMMENT '文件ID列表JSON',
`zip_name` varchar(255) DEFAULT '' COMMENT '压缩包名称',
`zip_path` varchar(500) DEFAULT '' COMMENT '压缩包路径',
`member_id` bigint NOT NULL COMMENT '用户ID',
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态: 0=生成中, 1=待下载, 2=已下载, 3=已过期',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`download_count` int NOT NULL DEFAULT 0 COMMENT '下载次数',
`download_url` varchar(500) DEFAULT '' COMMENT '下载地址',
`ip_addr` varchar(50) DEFAULT '' COMMENT '请求IP',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_no` (`task_no`),
KEY `idx_member_id` (`member_id`),
KEY `idx_status` (`status`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件下载任务表';7.3 file_upload_chunk - 上传分片记录表
CREATE TABLE `file_upload_chunk` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`upload_id` varchar(100) NOT NULL COMMENT '上传ID(合并时唯一标识)',
`chunk_index` int NOT NULL COMMENT '分片索引',
`chunk_size` bigint NOT NULL COMMENT '分片大小',
`chunk_path` varchar(500) NOT NULL COMMENT '分片存储路径',
`chunk_hash` varchar(64) DEFAULT '' COMMENT '分片Hash',
`upload_status` tinyint NOT NULL DEFAULT 0 COMMENT '上传状态: 0=未完成, 1=已完成',
`upload_time` datetime DEFAULT NULL COMMENT '上传时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_upload_chunk` (`upload_id`, `chunk_index`),
KEY `idx_upload_id` (`upload_id`),
KEY `idx_status` (`upload_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='上传分片记录表';八、消息模块(msg_*)
8.1 msg_message - 站内消息表
CREATE TABLE `msg_message` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '消息ID',
`msg_no` varchar(32) NOT NULL COMMENT '消息编号',
`msg_type` tinyint NOT NULL COMMENT '消息类型: 1=系统通知, 2=任务通知, 3=团队通知, 4=订单通知',
`title` varchar(200) NOT NULL COMMENT '消息标题',
`content` text COMMENT '消息内容',
`sender_type` tinyint NOT NULL DEFAULT 0 COMMENT '发送者类型: 0=系统, 1=用户',
`sender_id` bigint NOT NULL DEFAULT 0 COMMENT '发送者ID',
`receiver_type` tinyint NOT NULL COMMENT '接收者类型: 1=系统用户, 2=会员',
`receiver_id` bigint NOT NULL COMMENT '接收者ID',
`related_type` varchar(50) DEFAULT '' COMMENT '关联类型: task=任务, project=项目, order=订单',
`related_id` varchar(50) DEFAULT '' COMMENT '关联ID',
`attachment_url` varchar(500) DEFAULT '' COMMENT '附件URL',
`link_url` varchar(500) DEFAULT '' COMMENT '跳转链接',
`is_read` tinyint NOT NULL DEFAULT 0 COMMENT '是否已读: 0=未读, 1=已读',
`read_time` datetime DEFAULT NULL COMMENT '阅读时间',
`priority` tinyint NOT NULL DEFAULT 1 COMMENT '优先级: 1=低, 2=中, 3=高',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_msg_no` (`msg_no`),
KEY `idx_receiver` (`receiver_type`, `receiver_id`),
KEY `idx_is_read` (`is_read`),
KEY `idx_create_time` (`create_time`),
KEY `idx_related` (`related_type`, `related_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站内消息表';8.2 msg_notification - 通知记录表
CREATE TABLE `msg_notification` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '通知ID',
`notification_type` tinyint NOT NULL COMMENT '通知类型: 1=站内信, 2=短信, 3=邮件, 4=推送',
`receiver_type` tinyint NOT NULL COMMENT '接收者类型: 1=系统用户, 2=会员',
`receiver_id` bigint NOT NULL COMMENT '接收者ID',
`receiver_value` varchar(100) DEFAULT '' COMMENT '接收者标识(手机/邮箱/设备Token)',
`title` varchar(200) DEFAULT '' COMMENT '通知标题',
`content` text NOT NULL COMMENT '通知内容',
`template_code` varchar(50) DEFAULT '' COMMENT '模板编码',
`template_params` text COMMENT '模板参数JSON',
`send_status` tinyint NOT NULL DEFAULT 0 COMMENT '发送状态: 0=待发送, 1=发送中, 2=已发送, 3=发送失败',
`send_time` datetime DEFAULT NULL COMMENT '发送时间',
`send_result` text COMMENT '发送结果',
`error_msg` varchar(500) DEFAULT '' COMMENT '错误信息',
`retry_times` int NOT NULL DEFAULT 0 COMMENT '重试次数',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_receiver` (`receiver_type`, `receiver_id`),
KEY `idx_send_status` (`send_status`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知记录表';8.3 msg_import_log - 导入日志表
CREATE TABLE `msg_import_log` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`import_type` tinyint NOT NULL COMMENT '导入类型: 1=剧本导入, 2=角色导入, 3=批量导入',
`operator_type` tinyint NOT NULL COMMENT '操作者类型: 1=系统用户, 2=会员',
`operator_id` bigint NOT NULL COMMENT '操作者ID',
`file_name` varchar(255) NOT NULL COMMENT '导入文件名',
`file_path` varchar(500) DEFAULT '' COMMENT '文件路径',
`file_size` bigint DEFAULT NULL COMMENT '文件大小',
`strategy` varchar(20) NOT NULL DEFAULT 'skip' COMMENT '去重策略: skip=跳过, cover=覆盖',
`total_rows` int NOT NULL DEFAULT 0 COMMENT '总行数',
`success_rows` int NOT NULL DEFAULT 0 COMMENT '成功行数',
`fail_rows` int NOT NULL DEFAULT 0 COMMENT '失败行数',
`fail_detail` text COMMENT '失败详情JSON',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态: 0=处理中, 1=成功, 2=部分失败, 3=全部失败',
`error_message` text COMMENT '错误信息',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_operator` (`operator_type`, `operator_id`),
KEY `idx_import_type` (`import_type`),
KEY `idx_status` (`status`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='导入日志表';九、表关系图
9.1 核心业务关系
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Member │────▶│ Team │◀────│ TeamMember │
│ (会员) │ │ (团队) │ │ (团队成员) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │
│ │
▼ ▼
┌─────────────────────────────────────────────────┐
│ Project (项目) │
│ project_no, team_id, owner_id, pipeline_* │
└─────────────────────────────────────────────────┘
│
├──────────────────┬──────────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Volume │ │ Chapter │ │ Asset │
│ (分集) │ │ (章节) │ │ (资产) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │
▼ │
┌─────────────┐ │
│ Shot │ │
│ (分镜) │ │
└─────────────┘ │
│ │
├────────────────┬────────────────────┘
▼ ▼
┌─────────────┐ ┌─────────────┐
│ ShotImage │ │ ShotVideo │
│ (分镜图片) │ │ (分镜视频) │
└─────────────┘ └─────────────┘
│ │
└───────┬────────┘
▼
┌─────────────┐
│ AiTask │
│ (AI任务) │
└─────────────┘
│
▼
┌─────────────┐
│ AiModel │
│ (AI模型) │
└─────────────┘9.2 积分流转关系
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│RechargePlan │────▶│RechargeOrder│────▶│ Points │
│ (充值方案) │ │ (充值订单) │ │ (积分账户) │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│PointsLog │
│(积分日志) │
└─────────────┘
▲
│
┌─────────────┐
│ AiTask │
│ (AI任务) │
└─────────────┘十、索引设计
10.1 核心查询索引
十一、命名规范
11.1 表命名规范
11.2 字段命名规范
十二、文档更新记录
附录A:完整建表SQL
由于篇幅限制,完整建表SQL请参考同目录下的
database_tables.sql文件。
附录B:ER图源文件
如需编辑ER图,请使用 dbdiagram.io 或 PowerDesigner 打开对应的 DSL 文件。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 小黄同学
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果


