Files
schoolNews/schoolNewsServ/.bin/mysql/sql/README.md
2025-10-15 10:39:51 +08:00

243 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 校园思政新闻平台数据库表结构说明
## 数据库初始化顺序
按照以下顺序执行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
- 资源 → Banner1对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`: 主键IDVARCHAR(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. **多租户**:添加租户相关表和字段