校园思政新闻平台数据库表结构说明
数据库初始化顺序
按照以下顺序执行SQL文件:
createDB.sql- 创建数据库createTableUser.sql- 创建用户相关表createTablePermission.sql- 创建权限相关表createTablePermissionControl.sql- 创建统一资源权限控制表createTableResource.sql- 创建资源管理相关表createTableCourse.sql- 创建课程管理相关表createTableLearning.sql- 创建学习管理相关表createTableUserCenter.sql- 创建个人中心相关表createTableAI.sql- 创建智能体相关表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)
- 资源 → 标签(多对多)
- 资源 → 推荐(1对1)
- 资源 → Banner(1对1)
-
课程体系
- 课程 → 章节(1对多)
- 课程 → 标签(多对多)
- 课程 → 部门权限(多对多)
-
学习体系
- 任务 → 资源/课程(多对多)
- 任务 → 用户(多对多)
- 用户 → 学习记录(1对多)
- 用户 → 学习统计(1对多)
-
个人中心
- 用户 → 收藏(1对多)
- 用户 → 成就(多对多)
- 用户 → 积分(1对1)
- 用户 → 浏览记录(1对多)
-
智能体
- 用户 → 对话会话(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: 创建者IDupdater: 更新者IDcreate_time: 创建时间update_time: 更新时间delete_time: 删除时间(软删除)deleted: 是否删除(0-否, 1-是)
特殊字段
- 所有表的字符编码为
utf8mb4,支持存储表情符号 - LONGTEXT 用于存储富文本内容
- TEXT 用于存储较长的文本描述
- VARCHAR 用于存储固定长度的字符串
- DECIMAL 用于存储精确的数值(如百分比、金额等)
- TIMESTAMP 用于存储时间(支持时区)
- INT/BIGINT 用于存储整数
注意事项
- 软删除:所有业务表都使用软删除机制(deleted字段),删除操作不会真正删除数据
- 时间戳:所有时间字段使用 TIMESTAMP 类型,自动记录创建和更新时间
- 字符集:数据库和所有表都使用 utf8mb4 字符集,支持存储所有Unicode字符
- 外键:建议在应用层维护外键关系,不使用数据库外键约束,以提高性能
- 索引优化:根据实际查询情况可以添加组合索引
- 数据量:对于大数据量表(如日志表、记录表),建议定期归档历史数据
- ID生成:建议使用雪花算法或UUID生成ID,确保分布式环境下的唯一性
默认数据
系统初始化后会包含以下默认数据:
- 用户:admin(密码已加密)
- 部门:超级部门、默认部门
- 角色:管理员、自由角色
- 权限:系统管理相关权限
- 菜单:系统管理菜单
- 资源分类:6个默认分类
- 系统配置:13项默认配置
- 智能体配置:思政小帮手
扩展建议
根据实际业务需求,可以扩展以下功能:
- 评论系统:添加资源/课程评论表
- 问答系统:添加问答相关表
- 考试系统:添加试题库、试卷、考试记录等表
- 消息系统:扩展站内信功能
- 工作流:添加审批流程相关表
- 数据分析:添加更详细的统计分析表
- 多租户:添加租户相关表和字段