文档版本:v1.0 创建日期:2026-05-16 数据库:MySQL 8.0


一、数据库规划

1.1 数据库命名规范

数据库名称: anime_platform
编码: utf8mb4
排序规则: utf8mb4_unicode_ci

1.2 数据库划分

数据库

说明

所属服务

anime_platform

主数据库

所有服务共享

anime_platform_system

系统配置库

system-server

anime_platform_member

会员数据库

member-server

anime_platform_project

项目数据库

project-server

anime_platform_ai

AI任务库

ai-server


二、数据表设计

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 核心查询索引

表名

索引名

字段

类型

说明

sys_user

idx_dept_status

dept_id, status

组合

按部门查询用户

sys_user

idx_phone

phone

普通

手机号登录

mem_member

idx_phone

phone

唯一

手机号唯一

mem_member

idx_status_level

status, member_level

组合

会员筛选

mem_team_member

idx_team_role

team_id, role

组合

团队角色查询

mem_points_log

idx_member_change

member_id, change_type

组合

积分变动查询

mem_points_log

idx_create_time

create_time

普通

时间范围查询

prj_project

idx_team_status

team_id, status

组合

团队项目查询

prj_project

idx_create_time

create_time

普通

时间排序

prj_volume

idx_project_sort

project_id, sort

组合

分集排序查询

prj_shot

idx_volume_status

volume_id, status

组合

分镜状态查询

ai_task

idx_member_status

member_id, status

组合

用户任务查询

ai_task

idx_provider_task

provider_task_id

普通

第三方任务查询

ai_task

idx_create_time

create_time

普通

时间排序

file_attachment

idx_biz

biz_type, biz_id

组合

业务附件查询

msg_message

idx_receiver_read

receiver_id, is_read

组合

未读消息查询


十一、命名规范

11.1 表命名规范

前缀

含义

示例

sys_

系统模块

sys_user, sys_menu

mem_

会员模块

mem_member, mem_team

prj_

项目模块

prj_project, prj_shot

ai_

AI模块

ai_model, ai_task

file_

文件模块

file_attachment

msg_

消息模块

msg_message

11.2 字段命名规范

类型

命名

示例

主键

id

id, user_id

编码

xxx_code

member_code, model_code

编号

xxx_no

order_no, task_no

名称

xxx_name

user_name, team_name

类型

xxx_type

user_type, order_type

状态

status

status

标识

flag

del_flag, is_default

时间

time

create_time, update_time

创建人

create_by

create_by

更新人

update_by

update_by

JSON字段

xxx_data

episodes_data

URL字段

xxx_url

file_url, image_url

数量

xxx_count

member_count

金额

xxx_amount

amount, total_amount

积分

points

points, freeze_points


十二、文档更新记录

版本

日期

更新内容

作者

v1.0

2026-05-16

初始版本

-


附录A:完整建表SQL

由于篇幅限制,完整建表SQL请参考同目录下的 database_tables.sql 文件。

附录B:ER图源文件

如需编辑ER图,请使用 dbdiagram.io 或 PowerDesigner 打开对应的 DSL 文件。