以下是基于 aigc 数据库文档核心业务模块(管理员权限、AIGC 生成、智能体交互、分镜项目)的 Mermaid ER 图代码,按业务模块拆分图表,确保关系清晰且与文档表结构完全匹配:
文件位置与维护说明
- ER 图文件路径:
docs/database/MERMAID-ER.md- 关联数据库文档:
docs/database/README.md- 维护流程:先更新迁移(
php think migrate:create/run/rollback)→ 验证表结构 → 同步更新本 ER 图并提交。- 预览提示:支持 Mermaid 的 Markdown 预览器可直接渲染;在线预览可使用 mermaid.live。
1. 管理员权限模块表关系图
(覆盖 sets_admin_* 系列表与全局路由表的关联)
mermaid
erDiagram
%% 主表:管理员用户表
sets_admin_user {
int id PK "自增主键"
int admin_role_id FK "关联角色ID"
varchar account "登录账号"
varchar password "加密密码"
varchar name "用户称呼"
tinyint status "1有效/0禁用"
int create_time "创建时间戳"
}
%% 主表:管理员角色表
sets_admin_role {
int id PK "自增主键"
int parent "父角色ID(0为顶级)"
varchar name "角色名"
text remark "角色备注"
tinyint status "1正常/0禁用"
}
%% 中间表:权限关联表(角色-路由)
sets_admin_access {
int id PK "自增主键"
int admin_role_id FK "关联角色ID"
int global_application_route_id FK "关联路由ID"
}
%% 主表:全局应用路由表(权限控制基础)
sets_global_application_route {
int id PK "自增主键"
int global_application_id "关联应用ID"
varchar url "路由规则"
tinyint type_client "0通用/1用户端/2管理端"
tinyint authorized "1需登录/0无需登录"
}
%% 主表:管理员菜单表(关联路由)
sets_admin_menu {
int id PK "自增主键"
int global_application_route_id FK "关联路由ID"
int parent "父菜单ID(0为顶级)"
varchar title "菜单显示标题"
varchar path "菜单路由路径"
tinyint status "1启用/0禁用"
}
%% 表关系定义
sets_admin_user ||--o{ sets_admin_role : "N对1(多用户对应1个角色)"
sets_admin_role ||--o{ sets_admin_access : "1对N(1个角色关联多路由权限)"
sets_global_application_route ||--o{ sets_admin_access : "1对N(1个路由被多角色关联)"
sets_global_application_route ||--o{ sets_admin_menu : "1对N(1个路由对应1个菜单)"2. AIGC 生成核心模块表关系图
(覆盖图片生成、封面生成、视频合成相关表)
mermaid
erDiagram
%% 主表:用户表(生成操作主体)
sets_member {
int id PK "自增主键"
varchar mobile "手机号"
varchar nick_name "用户昵称"
tinyint status "1有效/0禁用"
}
%% 主表:图片主题表(生成素材分类)
sets_image_topic {
int id PK "自增主键"
int image_type_id FK "关联图片类型ID"
varchar name "主题名"
text prompt "生成提示词"
text negative_prompt "反向提示词"
varchar model "生成模型(如 poster-from-oss-video)"
decimal aspect_ratio "长宽比(如 9:16→0.5625)"
tinyint status "1可用/0不可用"
}
%% 主表:图片类型表(主题的上级分类)
sets_image_type {
int id PK "自增主键"
varchar name "类型名"
varchar cover "类型封面URL"
tinyint status "1可用/0不可用"
}
%% 表:图片生成记录表(生成操作日志)
sets_image_generate_record {
int id PK "自增主键"
int member_id FK "关联用户ID"
int image_topic_id FK "关联主题ID"
varchar prompt "生成提示词"
varchar status "任务状态(success/failed)"
varchar oss_url "生成结果URL"
int create_time "创建时间戳"
}
%% 表:图片素材表(生成结果存储)
sets_image {
int id PK "自增主键"
int image_topic_id FK "关联主题ID"
varchar key "OSS存储Key"
varchar image_url "访问URL"
varchar prompt "生成提示词"
int is_illegal "0待查/1违规"
}
%% 表:AIGC封面生成记录表
sets_aigc_cover_record {
int id PK "自增主键"
varchar actor_type "操作主体类型(member/admin)"
int actor_id "操作主体ID"
varchar video_key "原视频OSS Key"
varchar cover_key "最终海报OSS Key"
int status "1成功/0失败"
}
%% 表:AIGC视频合成表(ICE)
sets_aigc_ice {
int id PK "自增主键"
int storyboard_id FK "关联分镜项目ID"
int synthesis_type "0单帧/1整片"
varchar video_url "合成视频URL"
int status "1草稿/2处理中/3成功"
decimal duration "视频时长(秒)"
}
%% 表关系定义
sets_image_type ||--o{ sets_image_topic : "1对N(1个类型包含多主题)"
sets_image_topic ||--o{ sets_image_generate_record : "1对N(1个主题关联多生成记录)"
sets_image_topic ||--o{ sets_image : "1对N(1个主题包含多素材)"
sets_member ||--o{ sets_image_generate_record : "1对N(1个用户发起多生成任务)"
sets_aigc_ice }o--|| sets_storyboard : "N对1(多合成任务关联1个分镜项目)"3. 智能体(Agent)交互模块表关系图
(覆盖智能体定义、会话、消息相关表)
mermaid
erDiagram
%% 主表:智能体基础信息表
sets_agent {
int id PK "自增主键"
varchar name "智能体名称"
varchar did "DID生成的agent_id"
varchar coze_bot_id "Coze生成的bot_id"
varchar description "智能体描述"
int image_topic_id FK "关联图片主题ID"
}
%% 主表:用户表(交互主体)
sets_member {
int id PK "自增主键"
varchar nick_name "用户昵称"
varchar avatar "用户头像"
}
%% 表:智能体会话表(会话容器)
sets_agent_conversation {
int id PK "自增主键"
int agent_id FK "关联智能体ID"
int member_id FK "关联用户ID"
varchar coze_id "Coze会话ID"
varchar message "消息列表(JSON)"
int create_time "创建时间戳"
}
%% 表:智能体会话聊天表(会话详情)
sets_agent_conversation_chat {
int id PK "自增主键"
int agent_id FK "关联智能体ID"
int member_id FK "关联用户ID"
varchar conversation_id "Coze会话ID"
varchar chat_id "Coze聊天ID"
varchar status "会话状态(running/success)"
int completed_at "会话完成时间戳"
}
%% 表:智能体会话消息表(单条消息)
sets_agent_conversation_message {
int id PK "自增主键"
int agent_id FK "关联智能体ID"
int member_id FK "关联用户ID"
varchar conversation_id FK "关联会话ID"
varchar content "消息内容"
varchar role "角色(user/assistant)"
varchar type "消息类型(question/answer)"
int create_at "消息创建时间戳"
}
%% 表关系定义
sets_agent ||--o{ sets_agent_conversation : "1对N(1个智能体关联多会话)"
sets_member ||--o{ sets_agent_conversation : "1对N(1个用户发起多会话)"
sets_agent_conversation ||--o{ sets_agent_conversation_chat : "1对N(1个会话包含多聊天记录)"
sets_agent_conversation ||--o{ sets_agent_conversation_message : "1对N(1个会话包含多消息)"
sets_agent }o--|| sets_image_topic : "N对1(多智能体关联1个图片主题)"4. 分镜项目与发布模块表关系图
(覆盖分镜项目、分镜项、发布记录相关表)
mermaid
erDiagram
%% 主表:用户表(分镜创建主体)
sets_member {
int id PK "自增主键"
int status "1有效/0禁用"
}
%% 主表:分镜项目表(核心容器)
sets_storyboard {
int id PK "自增主键"
int member_id FK "关联用户ID"
int image_topic_id FK "关联图片主题ID"
varchar title "分镜项目标题"
int status "0草稿/1生成中/2已生成"
int version "分镜版本号"
}
%% 表:分镜项表(项目拆分单元)
sets_storyboard_item {
int id PK "自增主键"
int storyboard_id FK "关联分镜项目ID"
int number "分镜序号"
longtext description "分镜描述"
longtext line "台词文本"
longtext prompt "生成提示词"
int follow_global "1跟随全局主题/0不跟随"
}
%% 表:分镜历史表(版本记录)
sets_storyboard_history {
int id PK "自增主键"
int storyboard_id FK "关联分镜项目ID"
int member_id FK "关联用户ID"
int version "分镜版本号"
longtext history_list "历史记录(JSON)"
}
%% 表:分镜发布记录表(发布操作日志)
sets_storyboard_publish_record {
int id PK "自增主键"
int storyboard_id FK "关联分镜项目ID"
int member_id FK "关联用户ID"
varchar platform "发布平台(如douyin)"
varchar status "发布状态(success/failed)"
varchar external_id "平台返回发布ID"
}
%% 表:AIGC发布任务表(全局发布管理)
sets_aigc_publish_runs {
int id PK "自增主键"
varchar storyboard_id "关联分镜项目ID"
varchar status "任务状态(running/success)"
varchar video_url "发布视频URL"
datetime created_at "创建时间"
}
%% 表关系定义
sets_member ||--o{ sets_storyboard : "1对N(1个用户创建多分镜项目)"
sets_storyboard ||--o{ sets_storyboard_item : "1对N(1个项目包含多分镜项)"
sets_storyboard ||--o{ sets_storyboard_history : "1对N(1个项目包含多版本历史)"
sets_storyboard ||--o{ sets_storyboard_publish_record : "1对N(1个项目发起多发布记录)"
sets_storyboard ||--o{ sets_aigc_publish_runs : "1对N(1个项目关联多发布任务)"
sets_image_topic ||--o{ sets_storyboard : "1对N(1个主题关联多分镜项目)"使用说明
- 渲染方式:将上述代码复制到支持 Mermaid 的 Markdown 编辑器(如 Typora、语雀、GitHub)中,即可自动生成可视化 ER 图。
- 关系标注:
- 符号含义:
||--o{表示“一对多”,}o--||表示“多对一”,||--||表示“一对一”。 - 括号内说明:明确字段类型(PK 主键/FK 外键)、业务含义及状态值(如“1 有效/0 禁用”)。
- 符号含义:
- 业务对齐:所有关系严格遵循文档中表结构的外键关联(如
sets_agent_conversation.agent_id关联sets_agent.id),无额外虚构关系。