imeeting/backend/design/db_schema.md

14 KiB
Raw Blame History

数据库结构文档PostgreSQL

本文档根据 backend/design/db_schema_pgsql.sql 生成,描述当前核心表结构、字段、约束与索引。

0. 租户与组织

0.1 sys_tenant(租户表)

字段 类型 约束 说明
id BIGSERIAL PK 租户ID
tenant_code VARCHAR(64) NOT NULL, UNIQUE 租户编码
tenant_name VARCHAR(128) NOT NULL 租户名称
status SMALLINT NOT NULL, DEFAULT 1 状态
expire_time TIMESTAMP(6) 过期时间
contact_name VARCHAR(64) 联系人
contact_phone VARCHAR(32) 联系电话
remark VARCHAR(255) 备注
created_at TIMESTAMP(6) NOT NULL, DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT CURRENT_TIMESTAMP 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除标记

索引:

  • uk_tenant_codeUNIQUE (tenant_code) WHERE is_deleted = FALSE

0.2 sys_org(组织架构表)

字段 类型 约束 说明
id BIGSERIAL PK 组织ID
tenant_id BIGINT NOT NULL 租户ID
parent_id BIGINT 父级组织ID
org_name VARCHAR(128) NOT NULL 组织名称
org_code VARCHAR(64) 组织编码
org_path VARCHAR(512) 组织路径
sort_order INTEGER DEFAULT 0 排序
status SMALLINT DEFAULT 1 状态
created_at TIMESTAMP(6) NOT NULL, DEFAULT CURRENT_TIMESTAMP 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT CURRENT_TIMESTAMP 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除标记

外键:

  • fk_org_parentparent_id -> sys_org(id)
  • fk_org_tenanttenant_id -> sys_tenant(id)

索引:

  • idx_org_tenant(tenant_id)

1. 用户与角色

1.1 sys_user(用户表)

字段 类型 约束 说明
user_id BIGSERIAL PK 用户ID
username VARCHAR(50) NOT NULL, UNIQUE 登录名
display_name VARCHAR(50) NOT NULL 显示名
email VARCHAR(100) 邮箱
phone VARCHAR(30) UNIQUE 手机号
password_hash VARCHAR(255) NOT NULL 密码哈希
status SMALLINT NOT NULL, DEFAULT 1 状态
pwd_reset_required SMALLINT DEFAULT 1 首次登录是否需改密
is_deleted SMALLINT NOT NULL, DEFAULT 0 逻辑删除标记
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间
is_platform_admin BOOLEAN DEFAULT false 是否平台管理员

索引:

  • uk_user_usernameUNIQUE (username) WHERE is_deleted = FALSE

1.2 sys_role(角色表)

字段 类型 约束 说明
role_id BIGSERIAL PK 角色ID
tenant_id BIGINT 租户ID
role_code VARCHAR(50) NOT NULL, UNIQUE 角色编码
role_name VARCHAR(50) NOT NULL 角色名称
status SMALLINT NOT NULL, DEFAULT 1 状态
remark TEXT 备注
is_deleted SMALLINT NOT NULL, DEFAULT 0 逻辑删除标记
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间

索引:

  • idx_sys_role_tenant(tenant_id)
  • uk_role_codeUNIQUE (tenant_id, role_code) WHERE is_deleted = FALSE

1.3 sys_user_role(用户-角色关联表)

字段 类型 约束 说明
id BIGSERIAL PK 关联ID
tenant_id BIGINT 租户ID
user_id BIGINT NOT NULL 用户ID
role_id BIGINT NOT NULL 角色ID
is_deleted SMALLINT NOT NULL, DEFAULT 0 逻辑删除标记
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间

唯一约束:

  • UNIQUE (user_id, role_id)

1.4 sys_tenant_user(租户成员关联表)

字段 类型 约束 说明
id BIGSERIAL PK 关联ID
user_id BIGINT NOT NULL 用户ID
tenant_id BIGINT NOT NULL 租户ID
org_id BIGINT 组织ID
status SMALLINT DEFAULT 1 状态
is_deleted SMALLINT DEFAULT 0 逻辑删除标记
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间

索引:

  • uk_tenant_userUNIQUE (user_id, tenant_id) WHERE is_deleted = 0

2. 权限/字典/参数(全局共享)

2.1 sys_permission(权限表)

字段 类型 约束 说明
perm_id BIGSERIAL PK 权限ID
parent_id BIGINT 父级权限ID
name VARCHAR(100) NOT NULL 权限名称
code VARCHAR(100) NOT NULL, UNIQUE 权限编码
perm_type VARCHAR(20) NOT NULL 权限类型
level INTEGER NOT NULL 层级
path VARCHAR(255) 路径
component VARCHAR(255) 组件
icon VARCHAR(100) 图标
sort_order INTEGER NOT NULL, DEFAULT 0 排序
is_visible SMALLINT NOT NULL, DEFAULT 1 是否可见
status SMALLINT NOT NULL, DEFAULT 1 状态
description TEXT 描述
meta JSONB 扩展信息
is_deleted SMALLINT NOT NULL, DEFAULT 0 逻辑删除标记
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间

2.2 sys_dict_type(字典类型表)

字段 类型 约束 说明
dict_type_id BIGSERIAL PK 类型ID
type_code VARCHAR(50) NOT NULL, UNIQUE 类型编码
type_name VARCHAR(50) NOT NULL 类型名称
status SMALLINT DEFAULT 1 状态
remark TEXT 备注
created_at TIMESTAMP NOT NULL, DEFAULT NOW() 创建时间
updated_at TIMESTAMP NOT NULL, DEFAULT NOW() 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除标记

初始化数据:

  • sys_common_status: 通用状态 (启用/禁用)
  • sys_permission_type: 权限类型 (目录/菜单/按钮)
  • sys_common_visibility: 可见性 (显示/隐藏)
  • sys_permission_level: 权限层级 (1, 2, 3)
  • sys_log_type: 日志类型 (LOGIN/OPERATION)
  • sys_param_type: 参数类型 (String/Number/Boolean/JSON)
  • sys_log_status: 操作状态 (成功/失败)

2.3 sys_dict_item(字典项表)

字段 类型 约束 说明
dict_item_id BIGSERIAL PK 字典项ID
type_code VARCHAR(50) NOT NULL 字典类型编码
item_label VARCHAR(100) NOT NULL 展示文本
item_value VARCHAR(100) NOT NULL 存储值
sort_order INT DEFAULT 0 排序
status SMALLINT DEFAULT 1 状态
created_at TIMESTAMP NOT NULL, DEFAULT NOW() 创建时间
updated_at TIMESTAMP NOT NULL, DEFAULT NOW() 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除标记

索引:

  • idx_dict_item_type(type_code)
  • uk_dict_item_valueUNIQUE (type_code, item_value)

2.4 sys_param(系统参数表)

字段 类型 约束 说明
id BIGSERIAL PK 参数ID
param_key VARCHAR(100) NOT NULL, UNIQUE 参数键
param_value TEXT NOT NULL 参数值
param_type VARCHAR(20) NOT NULL 参数类型
is_system SMALLINT DEFAULT 0 是否系统内置
status SMALLINT DEFAULT 1 状态
description TEXT 描述
created_at TIMESTAMP NOT NULL, DEFAULT NOW() 创建时间

3. 日志(租户隔离)

3.1 sys_log(系统日志表)

字段 类型 约束 说明
id BIGSERIAL PK 日志ID
tenant_id BIGINT NOT NULL, DEFAULT 0 租户ID
user_id BIGINT 用户ID
username VARCHAR(50) 用户名
log_type VARCHAR(20) 日志类型(如 LOGIN、OPERATION
operation VARCHAR(100) NOT NULL 操作描述
method VARCHAR(200) 方法
params TEXT 请求参数
status SMALLINT DEFAULT 1 状态
ip VARCHAR(50) IP
duration BIGINT 耗时ms
created_at TIMESTAMP NOT NULL, DEFAULT NOW() 创建时间

索引:

  • idx_log_tenant_type(tenant_id, log_type, created_at)

4. 平台配置

4.1 sys_platform_config(平台管理表)

字段 类型 约束 说明
id BIGINT PK 固定为 1
project_name VARCHAR(128) NOT NULL 项目名称
logo_url VARCHAR(512) Logo URL
icon_url VARCHAR(512) Icon URL
login_bg_url VARCHAR(512) 登录页背景
icp_info VARCHAR(128) 备案信息
copyright_info VARCHAR(255) 版权信息
system_description TEXT 系统描述
created_at TIMESTAMP NOT NULL 创建时间
updated_at TIMESTAMP NOT NULL 更新时间

5. 业务模块

5.1 biz_speakers(声纹发言人表)

字段 类型 约束 说明
id BIGSERIAL PK 主键ID
tenant_id BIGINT NOT NULL 租户ID
user_id BIGINT 关联系统用户ID
name VARCHAR(100) NOT NULL 发言人姓名
voice_path VARCHAR(512) 原始文件路径
voice_ext VARCHAR(10) 文件后缀
voice_size BIGINT 文件大小
status SMALLINT DEFAULT 1 状态 (1:已保存, 2:注册中, 3:已注册)
embedding VECTOR 声纹特征向量
remark TEXT 备注
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除

索引:

  • idx_speaker_tenant: (tenant_id)
  • idx_speaker_user: (user_id) WHERE is_deleted = 0

5.2 biz_hot_words(热词管理表)

字段 类型 约束 说明
id BIGSERIAL PK 主键ID
tenant_id BIGINT NOT NULL 租户ID
word VARCHAR(100) NOT NULL 热词原文
pinyin_list JSONB 拼音数组
match_strategy SMALLINT DEFAULT 1 匹配策略 (1:精确, 2:模糊)
category VARCHAR(50) 类别 (人名、术语等)
weight INTEGER DEFAULT 10 权重 (1-100)
status SMALLINT DEFAULT 1 状态 (1:启用, 0:禁用)
is_synced SMALLINT DEFAULT 0 已同步第三方标记
remark TEXT 备注
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除

索引:

  • idx_hotword_tenant: (tenant_id)
  • idx_hotword_word: (word) WHERE is_deleted = 0

5.3 biz_prompt_templates(提示词模板表)

字段 类型 约束 说明
id BIGSERIAL PK 主键ID
tenant_id BIGINT NOT NULL 租户ID
template_name VARCHAR(100) NOT NULL 模板名称
category VARCHAR(20) 分类 (字典: biz_prompt_category)
is_system SMALLINT DEFAULT 0 是否预置 (1:是, 0:否)
creator_id BIGINT 创建人ID
tags JSONB 标签数组
usage_count INTEGER DEFAULT 0 使用次数
prompt_content TEXT NOT NULL 提示词内容
status SMALLINT DEFAULT 1 状态 (1:启用, 0:禁用)
remark VARCHAR(255) 备注
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除

索引:

  • idx_prompt_tenant: (tenant_id)
  • idx_prompt_system: (is_system) WHERE is_deleted = 0

5.4 biz_ai_modelsAI 模型管理表)

字段 类型 约束 说明
id BIGSERIAL PK 主键ID
tenant_id BIGINT NOT NULL 租户ID
model_type VARCHAR(20) NOT NULL ASR (语音) 或 LLM (总结)
model_name VARCHAR(100) NOT NULL 自定义名称
provider VARCHAR(50) 提供商 (Aliyun, OpenAI等)
base_url VARCHAR(255) 基础请求地址
model_code VARCHAR(100) 模型代码
ws_url VARCHAR(255) WebSocket 地址 (ASR)
temperature DECIMAL DEFAULT 0.7 随机性 (LLM)
media_config JSONB 采样率、协议等
is_default SMALLINT DEFAULT 0 默认模型标记
status SMALLINT DEFAULT 1 启用状态
created_at TIMESTAMP(6) NOT NULL, DEFAULT now() 创建时间
updated_at TIMESTAMP(6) NOT NULL, DEFAULT now() 更新时间
is_deleted SMALLINT DEFAULT 0 逻辑删除

索引:

  • idx_aimodel_tenant: (tenant_id)
  • idx_aimodel_type: (model_type, is_default) WHERE is_deleted = 0

5.5 biz_meetings(会议主表)

字段 类型 约束 说明
id BIGSERIAL PK 主键ID
tenant_id BIGINT NOT NULL 租户ID
title VARCHAR(200) NOT NULL 会议标题
asr_model_id BIGINT 使用的 ASR 模型
summary_model_id BIGINT 使用的 LLM 模型
prompt_content TEXT [快照] 发起任务时的提示词模板内容
summary_content TEXT [固化] 最终生成的 Markdown 总结内容
status SMALLINT DEFAULT 0 0:待处理, 1:识别中, 2:总结中, 3:已完成, 4:失败

5.6 biz_meeting_transcripts(转录明细表)

字段 类型 约束 说明
id BIGSERIAL PK 主键ID
meeting_id BIGINT NOT NULL 关联会议ID
speaker_label VARCHAR(50) 发言人标签
content TEXT 转录文字
start_time INTEGER 开始时间 (ms)

5.7 biz_ai_tasksAI 任务流水表)

字段 类型 约束 说明
id BIGSERIAL PK 主键ID
task_type VARCHAR(20) ASR / SUMMARY
request_data JSONB 请求原始数据
response_data JSONB 响应原始数据
status SMALLINT 0:排队, 1:处理中, 2:成功, 3:失败