MySQL 数据表结构文档
1. 全局角色表(global_roles)
表基本信息
属性 | 说明 |
---|---|
表名 | global_roles |
存储引擎 | InnoDB |
字符集 | utf8mb4 |
字段详情
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
id | INT | PRIMARY KEY、AUTO_INCREMENT | 主键,自增ID |
role_name | VARCHAR(50) | UNIQUE、NOT NULL | 角色名称,唯一且非空 |
description | TEXT | 无 | 角色描述信息 |
备注
AUTO_INCREMENT
表示id
字段会自动增长,无需手动插入值。UNIQUE
约束确保role_name
字段的值在表中唯一,避免重复的角色名称。utf8mb4
字符集支持包括 emoji 在内的所有 Unicode 字符,适用于多语言场景。
2. 用户表(users)
表基本信息
属性 | 说明 |
---|---|
表名 | users |
存储引擎 | InnoDB |
字符集 | utf8mb4 |
字段详情
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
id | INT | PRIMARY KEY、AUTO_INCREMENT | 主键,自增ID |
username | VARCHAR(50) | UNIQUE、NOT NULL | 登录用户名 |
password_hash | VARCHAR(255) | NOT NULL | 加密密码 |
feishu_user_name | VARCHAR(255) | UNIQUE | 飞书用户名 |
role_name | VARCHAR(50) | NOT NULL | 全局角色身份 |
open_id | VARCHAR(255) | NULL | 飞书平台唯一标识 |
created_at | int(11) | NULL DEFAULT NULL | 创建时间戳 |
updated_at | int(11) | NULL DEFAULT NULL | 更新时间戳 |
3. 应用表(app)
表基本信息
属性 | 说明 |
---|---|
表名 | app |
存储引擎 | InnoDB |
字符集 | utf8mb4 |
字段详情
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
id | INT | PRIMARY KEY、AUTO_INCREMENT | 主键,自增ID |
name | VARCHAR(100) | NOT NULL | 应用名称 |
description | TEXT | NULL | 应用描述 |
feishu_error_group | VARCHAR(100) | NULL | 飞书报错群ID或名称 |
created_at | int(11) | NULL DEFAULT NULL | 创建时间戳 |
updated_at | int(11) | NULL DEFAULT NULL | 更新时间戳 |
creator_id | INT | NULL | 创建者用户ID(关联users表) |
约束与索引
- 唯一索引:
uk_app_name (name)
(确保应用名称唯一) - 外键约束:
fk_app_creator
- 关联字段:
creator_id
关联users(id)
- 级联规则:
ON DELETE SET NULL
(用户记录删除时,creator_id设为NULL)
- 关联字段:
4. 应用角色表(app_roles)
表基本信息
属性 | 说明 |
---|---|
表名 | app_roles |
存储引擎 | InnoDB |
字符集 | utf8mb4 |
字段详情
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
id | INT | PRIMARY KEY、AUTO_INCREMENT | 主键,自增ID |
app_id | INT | NOT NULL | 应用ID(关联app表) |
role_name | VARCHAR(50) | NOT NULL | 角色名称 |
is_admin | TINYINT(1) | DEFAULT 0 | 1=应用内管理员,0=普通成员 |
约束与索引
- 唯一索引:
uk_app_role (app_id, role_name)
(确保同一应用内角色名称唯一) - 外键约束:
- 关联字段:
app_id
关联app(id)
- 级联规则:
ON DELETE CASCADE
(应用记录删除时,关联的角色记录同步删除)
- 关联字段:
5. 用户应用角色关联表(user_app_roles)
表基本信息
属性 | 说明 |
---|---|
表名 | user_app_roles |
存储引擎 | InnoDB |
字符集 | utf8mb4 |
字段详情
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
user_id | INT | NOT NULL | 用户ID(关联users表) |
app_id | INT | NOT NULL | 应用ID(关联app表) |
role_id | INT | NOT NULL | 应用内角色ID(关联app_roles表) |
granted_by | VARCHAR(255) | NULL | 授权人账号(关联users表) |
granted_at | int(11) | NULL DEFAULT NULL | 授权时间戳 |
约束与索引
- 主键:
PRIMARY KEY (user_id, app_id)
(用户与应用的唯一关联) - 外键约束:
user_id
关联users(id)
,级联规则:ON DELETE CASCADE
app_id
关联app(id)
,级联规则:ON DELETE CASCADE
role_id
关联app_roles(id)
,级联规则:ON DELETE CASCADE
granted_by
关联users(username)
,级联规则:ON DELETE SET NULL
6. 应用关键词表(keywords)
表基本信息
属性 | 说明 |
---|---|
表名 | keywords |
存储引擎 | InnoDB |
字符集 | utf8mb4 |
表注释 | 应用关键词表 |
字段详情
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
id | int(11) | PRIMARY KEY、AUTO_INCREMENT | 主键ID |
app_name | varchar(100) | NOT NULL | 应用名称 |
key_name | varchar(255) | NOT NULL | 关键词 |
created_at | int(11) | NOT NULL | 创建时间 |
约束与索引
- 唯一索引:
uk_app_key (app_name, key_name)
(应用+关键词唯一索引) - 普通索引:
idx_app_name (app_name)
(应用名称索引,加速查询)
7. 应用关键词屏蔽表(blocked_keywords)
表基本信息
属性 | 说明 |
---|---|
表名 | blocked_keywords |
存储引擎 | InnoDB |
字符集 | utf8mb4 |
表注释 | 屏蔽关键词表 |
字段详情
字段名 | 数据类型 | 约束条件 | 说明 |
---|---|---|---|
id | int(11) | PRIMARY KEY、AUTO_INCREMENT | 主键ID |
app_name | varchar(100) | NOT NULL | 应用名称 |
key_name | varchar(255) | NOT NULL | 关键词 |
reason | varchar(500) | DEFAULT NULL | 屏蔽原因 |
end | int(11) | DEFAULT NULL | 屏蔽结束时间(NULL表示永久屏蔽) |
redmine | varchar(100) | DEFAULT NULL | 关联的Redmine问题编号 |
索引
- 普通索引:
idx_app_name (app_name)
(应用名称索引) - 普通索引:
idx_end_time (end)
(屏蔽结束时间索引)