Files
schoolNews/schoolNewsServ/.bin/mysql/sql/ER关系图.md
2025-10-15 10:39:51 +08:00

8.9 KiB
Raw Permalink Blame History

校园思政新闻平台 - ER关系图

核心模块关系图

erDiagram
    %% 用户体系
    tb_sys_user ||--|| tb_sys_user_info : "1对1"
    tb_sys_user ||--o{ tb_sys_login_log : "1对多"
    tb_sys_user ||--o{ tb_sys_user_dept_role : "1对多"
    
    %% 权限体系
    tb_sys_dept ||--o{ tb_sys_dept : "父子关系"
    tb_sys_dept ||--o{ tb_sys_dept_role : "1对多"
    tb_sys_role ||--o{ tb_sys_dept_role : "1对多"
    tb_sys_role ||--o{ tb_sys_user_dept_role : "1对多"
    tb_sys_role ||--o{ tb_sys_role_permission : "1对多"
    tb_sys_permission ||--o{ tb_sys_role_permission : "1对多"
    tb_sys_permission ||--o{ tb_sys_menu_permission : "1对多"
    tb_sys_menu ||--o{ tb_sys_menu : "父子关系"
    tb_sys_menu ||--o{ tb_sys_menu_permission : "1对多"
    
    %% 资源体系
    tb_resource_category ||--o{ tb_resource_category : "父子关系"
    tb_resource_category ||--o{ tb_resource : "1对多"
    tb_resource ||--o{ tb_resource_tag : "1对多"
    tb_resource ||--o| tb_resource_recommend : "1对1"
    tb_resource ||--o| tb_banner : "1对1"
    tb_tag ||--o{ tb_resource_tag : "1对多"
    
    %% 课程体系
    tb_course ||--o{ tb_course_chapter : "1对多"
    tb_course ||--o{ tb_course_tag : "1对多"
    tb_course ||--o{ tb_course_dept : "1对多"
    tb_tag ||--o{ tb_course_tag : "1对多"
    tb_sys_dept ||--o{ tb_course_dept : "1对多"
    
    %% 学习体系
    tb_learning_task ||--o{ tb_task_resource : "1对多"
    tb_learning_task ||--o{ tb_task_course : "1对多"
    tb_learning_task ||--o{ tb_task_user : "1对多"
    tb_resource ||--o{ tb_task_resource : "1对多"
    tb_course ||--o{ tb_task_course : "1对多"
    tb_sys_user ||--o{ tb_task_user : "1对多"
    tb_sys_user ||--o{ tb_learning_record : "1对多"
    tb_sys_user ||--o{ tb_learning_statistics : "1对多"
    
    %% 个人中心
    tb_sys_user ||--o{ tb_user_collection : "1对多"
    tb_sys_user ||--|| tb_user_points : "1对1"
    tb_sys_user ||--o{ tb_points_record : "1对多"
    tb_sys_user ||--o{ tb_user_achievement : "1对多"
    tb_sys_user ||--o{ tb_user_browse_record : "1对多"
    tb_achievement ||--o{ tb_user_achievement : "1对多"
    
    %% 智能体
    tb_sys_user ||--o{ tb_ai_conversation : "1对多"
    tb_sys_user ||--o{ tb_ai_upload_file : "1对多"
    tb_sys_user ||--o{ tb_ai_usage_statistics : "1对多"
    tb_ai_conversation ||--o{ tb_ai_message : "1对多"
    
    %% 系统
    tb_sys_user ||--o{ tb_sys_operation_log : "1对多"
    tb_sys_user ||--o{ tb_sys_notification : "1对多"

用户权限体系详细关系

graph TB
    User[用户 tb_sys_user]
    UserInfo[用户信息 tb_sys_user_info]
    UDR[用户部门角色 tb_sys_user_dept_role]
    Dept[部门 tb_sys_dept]
    Role[角色 tb_sys_role]
    RolePerm[角色权限 tb_sys_role_permission]
    Perm[权限 tb_sys_permission]
    MenuPerm[菜单权限 tb_sys_menu_permission]
    Menu[菜单 tb_sys_menu]
    
    User -->|1:1| UserInfo
    User -->|1:N| UDR
    Dept -->|1:N| UDR
    Role -->|1:N| UDR
    Role -->|1:N| RolePerm
    Perm -->|1:N| RolePerm
    Perm -->|1:N| MenuPerm
    Menu -->|1:N| MenuPerm
    
    style User fill:#e1f5ff
    style Role fill:#fff4e1
    style Perm fill:#ffe1f5
    style Menu fill:#e1ffe1

资源课程学习体系

graph TB
    Resource[资源 tb_resource]
    Course[课程 tb_course]
    Chapter[章节 tb_course_chapter]
    Category[分类 tb_resource_category]
    Tag[标签 tb_tag]
    Task[学习任务 tb_learning_task]
    TaskUser[任务用户 tb_task_user]
    User[用户 tb_sys_user]
    Record[学习记录 tb_learning_record]
    
    Category -->|1:N| Resource
    Resource -->|M:N| Tag
    Course -->|M:N| Tag
    Course -->|1:N| Chapter
    
    Task -->|M:N| Resource
    Task -->|M:N| Course
    Task -->|M:N| User
    Task --> TaskUser
    
    User -->|1:N| Record
    Resource -.->|记录| Record
    Course -.->|记录| Record
    
    style Resource fill:#e1f5ff
    style Course fill:#ffe1f5
    style Task fill:#fff4e1
    style User fill:#e1ffe1

智能体对话体系

graph TB
    User[用户 tb_sys_user]
    Config[AI配置 tb_ai_agent_config]
    Knowledge[知识库 tb_ai_knowledge]
    Conversation[对话会话 tb_ai_conversation]
    Message[对话消息 tb_ai_message]
    File[上传文件 tb_ai_upload_file]
    Stats[使用统计 tb_ai_usage_statistics]
    
    User -->|1:N| Conversation
    User -->|1:N| File
    User -->|1:N| Stats
    Conversation -->|1:N| Message
    File -.->|关联| Message
    Knowledge -.->|引用| Message
    Config -.->|配置| Message
    
    style User fill:#e1f5ff
    style Conversation fill:#ffe1f5
    style Knowledge fill:#fff4e1
    style Config fill:#e1ffe1

个人中心体系

graph TB
    User[用户 tb_sys_user]
    Collection[收藏 tb_user_collection]
    Points[积分 tb_user_points]
    PointsRecord[积分记录 tb_points_record]
    Achievement[成就 tb_achievement]
    UserAchievement[用户成就 tb_user_achievement]
    Browse[浏览记录 tb_user_browse_record]
    
    Resource[资源]
    Course[课程]
    
    User -->|1:N| Collection
    User -->|1:1| Points
    User -->|1:N| PointsRecord
    User -->|1:N| UserAchievement
    User -->|1:N| Browse
    
    Achievement -->|1:N| UserAchievement
    
    Resource -.->|收藏| Collection
    Course -.->|收藏| Collection
    Resource -.->|浏览| Browse
    Course -.->|浏览| Browse
    
    style User fill:#e1f5ff
    style Points fill:#ffe1f5
    style Achievement fill:#fff4e1

表关系类型说明

1对1关系 (1:1)

  • tb_sys_usertb_sys_user_info: 用户与用户信息
  • tb_sys_usertb_user_points: 用户与积分
  • tb_resourcetb_resource_recommend: 资源与推荐(可选)
  • tb_resourcetb_banner: 资源与Banner可选

1对多关系 (1:N)

  • tb_sys_usertb_sys_login_log: 用户的登录记录
  • tb_sys_depttb_sys_dept: 部门的子部门
  • tb_resource_categorytb_resource: 分类下的资源
  • tb_coursetb_course_chapter: 课程的章节
  • tb_ai_conversationtb_ai_message: 会话的消息

多对多关系 (M:N)

  • tb_sys_usertb_sys_role: 通过 tb_sys_user_dept_role
  • tb_sys_roletb_sys_permission: 通过 tb_sys_role_permission
  • tb_resourcetb_tag: 通过 tb_resource_tag
  • tb_coursetb_tag: 通过 tb_course_tag
  • tb_learning_tasktb_resource: 通过 tb_task_resource
  • tb_learning_tasktb_course: 通过 tb_task_course
  • tb_learning_tasktb_sys_user: 通过 tb_task_user
  • tb_sys_usertb_achievement: 通过 tb_user_achievement

核心业务流程关系

用户学习流程

  1. 用户登录 → tb_sys_user + tb_sys_login_log
  2. 查看任务 → tb_learning_task + tb_task_user
  3. 学习资源 → tb_resource / tb_course
  4. 记录学习 → tb_learning_record
  5. 更新进度 → tb_task_user + tb_learning_statistics
  6. 获得积分 → tb_user_points + tb_points_record
  7. 解锁成就 → tb_user_achievement

资源管理流程

  1. 数据采集 → tb_data_collection_config + tb_data_collection_log
  2. 创建资源 → tb_resource
  3. 设置分类 → tb_resource_category
  4. 添加标签 → tb_tag + tb_resource_tag
  5. 推荐资源 → tb_resource_recommend
  6. 设置Banner → tb_banner
  7. 记录操作 → tb_sys_operation_log

智能体交互流程

  1. 创建会话 → tb_ai_conversation
  2. 发送消息 → tb_ai_message
  3. 上传文件 → tb_ai_upload_file
  4. 检索知识库 → tb_ai_knowledge
  5. 生成回复 → tb_ai_message
  6. 记录统计 → tb_ai_usage_statistics

数据流向图

flowchart LR
    A[用户操作] --> B{操作类型}
    
    B -->|学习| C[学习记录]
    B -->|浏览| D[浏览记录]
    B -->|收藏| E[收藏记录]
    B -->|对话| F[对话记录]
    
    C --> G[学习统计]
    D --> H[访问统计]
    C --> I[积分系统]
    I --> J[成就系统]
    
    F --> K[AI统计]
    
    G --> L[数据大屏]
    H --> L
    K --> L
    
    style A fill:#e1f5ff
    style L fill:#ffe1e1

性能优化关键点

  1. 高频查询表

    • tb_sys_user: 用户信息(添加缓存)
    • tb_resource: 资源列表(分页+缓存)
    • tb_course: 课程列表(分页+缓存)
  2. 大数据量表

    • tb_learning_record: 学习记录(分表+归档)
    • tb_sys_operation_log: 操作日志(分表+归档)
    • tb_user_browse_record: 浏览记录(分表+归档)
    • tb_ai_message: 对话消息(分表+归档)
  3. 实时统计表

    • tb_learning_statistics: 预聚合统计
    • tb_sys_visit_statistics: 预聚合统计
    • tb_ai_usage_statistics: 预聚合统计
  4. 关联查询优化

    • 用户权限查询:缓存权限信息
    • 任务详情查询:适当冗余字段
    • 资源推荐查询:使用物化视图