243 lines
8.0 KiB
Markdown
243 lines
8.0 KiB
Markdown
|
|
# 校园思政新闻平台数据库表结构说明
|
|||
|
|
|
|||
|
|
## 数据库初始化顺序
|
|||
|
|
|
|||
|
|
按照以下顺序执行SQL文件:
|
|||
|
|
|
|||
|
|
1. `createDB.sql` - 创建数据库
|
|||
|
|
2. `createTableUser.sql` - 创建用户相关表
|
|||
|
|
3. `createTablePermission.sql` - 创建权限相关表
|
|||
|
|
4. `createTablePermissionControl.sql` - **创建统一资源权限控制表**
|
|||
|
|
5. `createTableResource.sql` - 创建资源管理相关表
|
|||
|
|
6. `createTableCourse.sql` - 创建课程管理相关表
|
|||
|
|
7. `createTableLearning.sql` - 创建学习管理相关表
|
|||
|
|
8. `createTableUserCenter.sql` - 创建个人中心相关表
|
|||
|
|
9. `createTableAI.sql` - 创建智能体相关表
|
|||
|
|
10. `createTableSystem.sql` - 创建系统配置和日志相关表
|
|||
|
|
|
|||
|
|
## 表结构概览
|
|||
|
|
|
|||
|
|
### 1. 用户管理模块 (createTableUser.sql)
|
|||
|
|
|
|||
|
|
- `tb_sys_user` - 用户表
|
|||
|
|
- `tb_sys_user_info` - 用户信息表
|
|||
|
|
- `tb_sys_login_log` - 登录日志表
|
|||
|
|
|
|||
|
|
### 2. 权限管理模块 (createTablePermission.sql)
|
|||
|
|
|
|||
|
|
- `tb_sys_dept` - 部门表
|
|||
|
|
- `tb_sys_role` - 角色表
|
|||
|
|
- `tb_sys_dept_role` - 部门-角色关联表
|
|||
|
|
- `tb_sys_user_dept_role` - 用户-部门-角色关联表
|
|||
|
|
- `tb_sys_permission` - 权限表
|
|||
|
|
- `tb_sys_role_permission` - 角色-权限关联表
|
|||
|
|
- `tb_sys_menu` - 菜单表
|
|||
|
|
- `tb_sys_menu_permission` - 菜单-权限关联表
|
|||
|
|
|
|||
|
|
### 3. 资源管理模块 (createTableResource.sql)
|
|||
|
|
|
|||
|
|
- `tb_resource` - 资源/新闻表
|
|||
|
|
- `tb_resource_category` - 资源分类表
|
|||
|
|
- 默认分类:党史学习、领导讲话、政策解读、红色经典、专题报告、思政案例
|
|||
|
|
- `tb_banner` - Banner轮播图表
|
|||
|
|
- `tb_resource_recommend` - 资源推荐表(TOP资源)
|
|||
|
|
- `tb_tag` - 标签表
|
|||
|
|
- `tb_resource_tag` - 资源-标签关联表
|
|||
|
|
- `tb_data_collection_config` - 数据采集配置表
|
|||
|
|
- `tb_data_collection_log` - 数据采集记录表
|
|||
|
|
|
|||
|
|
### 4. 课程管理模块 (createTableCourse.sql)
|
|||
|
|
|
|||
|
|
- `tb_course` - 课程表
|
|||
|
|
- `tb_course_chapter` - 课程章节表
|
|||
|
|
- `tb_course_tag` - 课程-标签关联表
|
|||
|
|
- `tb_course_dept` - 课程-部门权限表
|
|||
|
|
|
|||
|
|
### 5. 学习管理模块 (createTableLearning.sql)
|
|||
|
|
|
|||
|
|
- `tb_learning_task` - 学习计划/任务表
|
|||
|
|
- `tb_task_resource` - 任务-资源关联表
|
|||
|
|
- `tb_task_course` - 任务-课程关联表
|
|||
|
|
- `tb_task_user` - 任务-用户关联表(任务接收人员)
|
|||
|
|
- `tb_learning_record` - 学习记录表
|
|||
|
|
- `tb_learning_statistics` - 学习统计表(按天统计)
|
|||
|
|
|
|||
|
|
### 6. 个人中心模块 (createTableUserCenter.sql)
|
|||
|
|
|
|||
|
|
- `tb_user_collection` - 用户收藏表
|
|||
|
|
- `tb_achievement` - 成就表
|
|||
|
|
- `tb_user_achievement` - 用户-成就关联表
|
|||
|
|
- `tb_user_points` - 用户积分表
|
|||
|
|
- `tb_points_record` - 积分记录表
|
|||
|
|
- `tb_user_browse_record` - 用户浏览记录表
|
|||
|
|
|
|||
|
|
### 7. 智能体模块 (createTableAI.sql)
|
|||
|
|
|
|||
|
|
- `tb_ai_agent_config` - 智能体配置表
|
|||
|
|
- `tb_ai_knowledge` - 知识库表
|
|||
|
|
- `tb_ai_conversation` - 对话会话表
|
|||
|
|
- `tb_ai_message` - 对话消息表
|
|||
|
|
- `tb_ai_upload_file` - 上传文件表
|
|||
|
|
- `tb_ai_usage_statistics` - AI使用统计表
|
|||
|
|
|
|||
|
|
### 8. 系统配置和日志模块 (createTableSystem.sql)
|
|||
|
|
|
|||
|
|
- `tb_sys_operation_log` - 操作日志表
|
|||
|
|
- `tb_sys_config` - 系统配置表
|
|||
|
|
- `tb_sys_visit_statistics` - 系统访问统计表
|
|||
|
|
- `tb_sys_notification` - 系统通知表
|
|||
|
|
- `tb_sys_file` - 文件上传记录表
|
|||
|
|
- `tb_sys_dict_type` - 数据字典类型表
|
|||
|
|
- `tb_sys_dict_data` - 数据字典详情表
|
|||
|
|
|
|||
|
|
## 表关系说明
|
|||
|
|
|
|||
|
|
### 核心关系
|
|||
|
|
|
|||
|
|
1. **用户体系**
|
|||
|
|
- 用户 → 用户信息(1对1)
|
|||
|
|
- 用户 → 部门-角色(多对多)
|
|||
|
|
- 角色 → 权限(多对多)
|
|||
|
|
- 菜单 → 权限(多对多)
|
|||
|
|
|
|||
|
|
2. **资源体系**
|
|||
|
|
- 资源 → 分类(多对1)
|
|||
|
|
- 资源 → 标签(多对多)
|
|||
|
|
- 资源 → 推荐(1对1)
|
|||
|
|
- 资源 → Banner(1对1)
|
|||
|
|
|
|||
|
|
3. **课程体系**
|
|||
|
|
- 课程 → 章节(1对多)
|
|||
|
|
- 课程 → 标签(多对多)
|
|||
|
|
- 课程 → 部门权限(多对多)
|
|||
|
|
|
|||
|
|
4. **学习体系**
|
|||
|
|
- 任务 → 资源/课程(多对多)
|
|||
|
|
- 任务 → 用户(多对多)
|
|||
|
|
- 用户 → 学习记录(1对多)
|
|||
|
|
- 用户 → 学习统计(1对多)
|
|||
|
|
|
|||
|
|
5. **个人中心**
|
|||
|
|
- 用户 → 收藏(1对多)
|
|||
|
|
- 用户 → 成就(多对多)
|
|||
|
|
- 用户 → 积分(1对1)
|
|||
|
|
- 用户 → 浏览记录(1对多)
|
|||
|
|
|
|||
|
|
6. **智能体**
|
|||
|
|
- 用户 → 对话会话(1对多)
|
|||
|
|
- 会话 → 消息(1对多)
|
|||
|
|
- 用户 → 上传文件(1对多)
|
|||
|
|
- 知识库(独立)
|
|||
|
|
|
|||
|
|
## 数据字典
|
|||
|
|
|
|||
|
|
### 通用状态码
|
|||
|
|
|
|||
|
|
- **deleted**: 0-未删除, 1-已删除
|
|||
|
|
- **status**: 根据业务模块有不同含义,具体见各表注释
|
|||
|
|
|
|||
|
|
### 资源相关
|
|||
|
|
|
|||
|
|
- **resource.status**: 0-草稿, 1-已发布, 2-下架
|
|||
|
|
- **link_type**: 1-资源, 2-课程, 3-外部链接
|
|||
|
|
|
|||
|
|
### 课程相关
|
|||
|
|
|
|||
|
|
- **course.status**: 0-未上线, 1-已上线, 2-已下架
|
|||
|
|
- **permission_type**: 0-公开, 1-指定部门
|
|||
|
|
|
|||
|
|
### 学习相关
|
|||
|
|
|
|||
|
|
- **task.status**: 0-草稿, 1-进行中, 2-已结束
|
|||
|
|
- **task_user.status**: 0-未完成, 1-已完成
|
|||
|
|
- **resource_type**: 1-资源, 2-课程, 3-章节
|
|||
|
|
|
|||
|
|
### 个人中心相关
|
|||
|
|
|
|||
|
|
- **collection_type**: 1-资源, 2-课程
|
|||
|
|
- **achievement.type**: 1-勋章, 2-等级
|
|||
|
|
- **condition_type**: 1-学习时长, 2-资源数量, 3-课程数量, 4-连续学习天数
|
|||
|
|
- **points_record.type**: 1-获得, 2-消费
|
|||
|
|
- **points_record.source_type**: 1-学习资源, 2-学习课程, 3-完成任务, 4-获得成就
|
|||
|
|
|
|||
|
|
### 智能体相关
|
|||
|
|
|
|||
|
|
- **ai_knowledge.source_type**: 1-手动添加, 2-文件导入, 3-资源同步
|
|||
|
|
- **ai_message.role**: user-用户, assistant-助手, system-系统
|
|||
|
|
- **ai_upload_file.status**: 0-处理中, 1-已完成, 2-失败
|
|||
|
|
|
|||
|
|
### 系统相关
|
|||
|
|
|
|||
|
|
- **menu.type**: 0-目录, 1-菜单, 2-按钮
|
|||
|
|
- **notification.type**: 1-系统通知, 2-任务通知, 3-成就通知
|
|||
|
|
- **config_type**: string-字符串, number-数字, boolean-布尔, json-JSON对象
|
|||
|
|
|
|||
|
|
## 索引说明
|
|||
|
|
|
|||
|
|
所有表都包含以下基本索引:
|
|||
|
|
- 主键索引(id)
|
|||
|
|
- 唯一键索引(如user_id、role_id等业务唯一标识)
|
|||
|
|
- 外键关联索引
|
|||
|
|
- 时间字段索引(create_time、update_time等)
|
|||
|
|
- 状态字段索引(status、deleted等)
|
|||
|
|
- 常用查询字段索引
|
|||
|
|
|
|||
|
|
## 字段说明
|
|||
|
|
|
|||
|
|
### 通用字段
|
|||
|
|
|
|||
|
|
所有表都包含以下通用字段:
|
|||
|
|
- `id`: 主键ID(VARCHAR(50))
|
|||
|
|
- `creator`: 创建者ID
|
|||
|
|
- `updater`: 更新者ID
|
|||
|
|
- `create_time`: 创建时间
|
|||
|
|
- `update_time`: 更新时间
|
|||
|
|
- `delete_time`: 删除时间(软删除)
|
|||
|
|
- `deleted`: 是否删除(0-否, 1-是)
|
|||
|
|
|
|||
|
|
### 特殊字段
|
|||
|
|
|
|||
|
|
- 所有表的字符编码为 `utf8mb4`,支持存储表情符号
|
|||
|
|
- LONGTEXT 用于存储富文本内容
|
|||
|
|
- TEXT 用于存储较长的文本描述
|
|||
|
|
- VARCHAR 用于存储固定长度的字符串
|
|||
|
|
- DECIMAL 用于存储精确的数值(如百分比、金额等)
|
|||
|
|
- TIMESTAMP 用于存储时间(支持时区)
|
|||
|
|
- INT/BIGINT 用于存储整数
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. **软删除**:所有业务表都使用软删除机制(deleted字段),删除操作不会真正删除数据
|
|||
|
|
2. **时间戳**:所有时间字段使用 TIMESTAMP 类型,自动记录创建和更新时间
|
|||
|
|
3. **字符集**:数据库和所有表都使用 utf8mb4 字符集,支持存储所有Unicode字符
|
|||
|
|
4. **外键**:建议在应用层维护外键关系,不使用数据库外键约束,以提高性能
|
|||
|
|
5. **索引优化**:根据实际查询情况可以添加组合索引
|
|||
|
|
6. **数据量**:对于大数据量表(如日志表、记录表),建议定期归档历史数据
|
|||
|
|
7. **ID生成**:建议使用雪花算法或UUID生成ID,确保分布式环境下的唯一性
|
|||
|
|
|
|||
|
|
## 默认数据
|
|||
|
|
|
|||
|
|
系统初始化后会包含以下默认数据:
|
|||
|
|
|
|||
|
|
1. **用户**:admin(密码已加密)
|
|||
|
|
2. **部门**:超级部门、默认部门
|
|||
|
|
3. **角色**:管理员、自由角色
|
|||
|
|
4. **权限**:系统管理相关权限
|
|||
|
|
5. **菜单**:系统管理菜单
|
|||
|
|
6. **资源分类**:6个默认分类
|
|||
|
|
7. **系统配置**:13项默认配置
|
|||
|
|
8. **智能体配置**:思政小帮手
|
|||
|
|
|
|||
|
|
## 扩展建议
|
|||
|
|
|
|||
|
|
根据实际业务需求,可以扩展以下功能:
|
|||
|
|
|
|||
|
|
1. **评论系统**:添加资源/课程评论表
|
|||
|
|
2. **问答系统**:添加问答相关表
|
|||
|
|
3. **考试系统**:添加试题库、试卷、考试记录等表
|
|||
|
|
4. **消息系统**:扩展站内信功能
|
|||
|
|
5. **工作流**:添加审批流程相关表
|
|||
|
|
6. **数据分析**:添加更详细的统计分析表
|
|||
|
|
7. **多租户**:添加租户相关表和字段
|
|||
|
|
|