基于SpringAI的在线考试系统-数据库设计核心业务方案

核心数据流转链路总结

全流程数据流转总览图

下面是根据您描述的业务逻辑优化的全流程数据流转链路图,展示了从基础配置到结果沉淀的完整业务流程:
第六阶段:结果沉淀
第五阶段:阅卷闭环
第四阶段:考生作答
第三阶段:考试组织
第二阶段:内容生成
第一阶段:基础配置
grade_id
class_id
subject_id
knowledge_id
question_id
paper_id
class_id
exam_id
user_id
exam_record_id
question_id
exam_id
user_id
exam_id
user_id
task_id
teacher_id
answer_id
task_id
question_id
actual_score汇总
exam_record_id
user_id
collection_id
marking_score
knowledge_id
user_id
grade表
classroom表
subject表
user表
subject表
knowledge表
knowledge_closure表
question表
subject表
paper表
question表
paper_question表
mock_exam表
mock_exam_record表
mock_exam_answer表
exam_screen_record表
marking_task表
marking_task_assignment表
基于题型分配
基于考生分配
marking_score表
marking_quality_control表
wrong_question_collection表
wrong_question_item表
全量表操作
operation_log表

核心流转链路时序图

下面是核心流转链路的时序图,展示了各阶段表之间的时序交互关系:
operation_log表 wrong_question_item表 wrong_question_collection表 仲裁教师 marking_quality_control表 marking_score表 marking_task_assignment表 marking_task表 exam_screen_record表 mock_exam_answer表 mock_exam_record表 mock_exam表 paper_question表 paper表 question表 knowledge_closure表 knowledge表 user表 subject表 classroom表 grade表 系统 学生 教师 管理员 operation_log表 wrong_question_item表 wrong_question_collection表 仲裁教师 marking_quality_control表 marking_score表 marking_task_assignment表 marking_task表 exam_screen_record表 mock_exam_answer表 mock_exam_record表 mock_exam表 paper_question表 paper表 question表 knowledge_closure表 knowledge表 user表 subject表 classroom表 grade表 系统 学生 教师 管理员 第一阶段:基础配置 第二阶段:内容生成 第三阶段:考试组织 第四阶段:考生作答 第五阶段:阅卷闭环 alt [基于题型分配] [基于考生分配] alt [需要仲裁] 第六阶段:结果沉淀 全流程操作日志记录 创建年级 返回grade_id 创建班级 返回class_id 创建科目 返回subject_id 创建用户 返回user_id 创建知识点 返回knowledge_id 同步层级关系 同步完成 创建试题 返回question_id 创建试卷 返回paper_id 绑定试题 绑定完成 创建考试 返回exam_id 进入考试 创建考试记录 返回exam_record_id 提交答案 保存成功 记录监控数据 创建阅卷任务 返回task_id 分配阅卷任务 分配题型任务 分配考生任务 自动评分客观题 人工评分主观题 质量管控 推送仲裁任务 仲裁评分 同步仲裁结果 核算总分 生成错题集 返回collection_id 记录错题明细 记录完成 记录操作日志

核心数据流转详解

第一阶段:基础配置

核心表 : grade, classroom, subject, user
生成标识 : grade_id, class_id, subject_id, user_id
作用: 建立系统组织架构,为所有业务提供归属载体

第二阶段:内容生成

核心表 : knowledge, knowledge_closure, question
生成标识 : knowledge_id, question_id
作用: 构建"科目→知识点→试题"内容体系,支撑考试内容

第三阶段:考试组织

核心表 : paper, paper_question, mock_exam
生成标识 : paper_id, exam_id
作用: 组织考试任务,关联试卷、试题和班级

第四阶段:考生作答

核心表 : mock_exam_record, mock_exam_answer, exam_screen_record
生成标识 : exam_record_id, answer_id
作用: 记录考生作答原始数据,为阅卷提供数据源

第五阶段:阅卷闭环

核心表 : marking_task, marking_task_assignment, marking_score, marking_quality_control
生成标识 : task_id, assignment_id
核心特色 : 双规则任务分配

  • 基于题型分配: 批量处理同类主观题,效率高,标准统一
  • 基于考生分配 : 全卷批阅或针对性复核,支持个性化阅卷
    作用: 实现"自动评分+人工评分+双评仲裁+成绩核算"完整闭环

第六阶段:结果沉淀

核心表 : wrong_question_collection, wrong_question_item, operation_log
生成标识 : collection_id
作用: 生成错题集用于学情分析,记录全流程操作日志用于审计

双规则分配机制对比

阅卷任务分配双规则
基于题型分配
适用场景
大型标准化考试
需要统一评分标准
效率优先
操作流程
按主观题类型分组
分配同题型试题给教师
教师专注批改同类题型
优点
评分标准统一
批改效率高
便于质量控制
数据关联
question_type字段
关联题型试题
基于考生分配
适用场景
重点考生复核
个性化阅卷需求
查看完整作答轨迹
操作流程
按班级/ID段/随机分配考生
分配单个/批量考生全卷给教师
教师批阅考生所有主观题
优点
完整评估考生水平
支持针对性复核
发现作答逻辑一致性
数据关联
exam_record_id_range字段
关联考生考试记录

外键关联完整性保障

整个数据流转链路通过外键关联确保数据完整性:

  1. 基础表外键

    • classroom.grade_idgrade.id
    • user.class_idclassroom.id
    • user.subject_idsubject.id
  2. 内容表外键

    • knowledge.subject_idsubject.id
    • question.subject_idsubject.id
    • question.knowledge_idknowledge.id
  3. 考试表外键

    • paper.subject_idsubject.id
    • paper_question.paper_idpaper.id
    • paper_question.question_idquestion.id
    • mock_exam.paper_idpaper.id
    • mock_exam.class_idclassroom.id
  4. 作答表外键

    • mock_exam_record.exam_idmock_exam.id
    • mock_exam_record.user_iduser.id
    • mock_exam_answer.exam_record_idmock_exam_record.id
    • mock_exam_answer.question_idquestion.id
  5. 阅卷表外键

    • marking_task.exam_idmock_exam.id
    • marking_task_assignment.task_idmarking_task.id
    • marking_task_assignment.teacher_iduser.id
    • marking_score.assignment_idmarking_task_assignment.id
    • marking_score.answer_idmock_exam_answer.id
    • marking_quality_control.task_idmarking_task.id
    • marking_quality_control.question_idquestion.id
  6. 沉淀表外键

    • wrong_question_collection.exam_record_idmock_exam_record.id
    • wrong_question_collection.user_iduser.id
    • wrong_question_item.collection_idwrong_question_collection.id
    • wrong_question_item.question_idquestion.id
    • wrong_question_item.knowledge_idknowledge.id
    • operation_log.user_iduser.id

索引优化策略

  1. 查询频繁字段

    • 状态字段索引:status, audit_status, publish_status
    • 时间字段索引:create_time, update_time
    • 关联字段索引:所有外键字段
  2. 复合索引

    • 联合查询字段:如(exam_id, user_id), (task_id, teacher_id)
    • 排序查询字段:如(create_time, status)
  3. 全文索引

    • 内容搜索字段:如stem(试题题干), knowledge_name
  4. 乐观锁机制

    • marking_score表的version字段,防止并发评分冲突

业务场景适配

场景1:大型标准化考试

  • 适用规则:基于题型分配
  • 优势:效率高,评分标准统一
  • 流程:客观题自动评分 → 主观题按题型分配给教师 → 双评仲裁 → 成绩核算

场景2:重点考试复核

  • 适用规则:基于考生分配
  • 优势:针对性强,完整评估
  • 流程:客观题自动评分 → 主观题按考生分配给教师 → 重点复核 → 成绩核算

场景3:混合模式

  • 适用规则:两种规则结合
  • 优势:兼顾效率与质量
  • 流程:大部分题目按题型分配 → 重点考生/异常试卷按考生分配 → 综合评阅 → 成绩核算

总结

整个数据流转链路严格遵循"基础配置→内容生成→考试执行→阅卷闭环→结果沉淀"的业务逻辑,通过合理的外键关联和索引优化,实现了数据完整性、可追溯性和高性能查询。双规则分配机制的设计使得系统能够灵活适应不同阅卷场景需求,既保证了大规模考试的阅卷效率,又满足了重点考试的质量控制要求,完全契合教育考试系统阅卷模块的实际业务需求。

相关推荐
一嘴一个橘子2 小时前
springmvc 参数校验
java
shehuiyuelaiyuehao2 小时前
String的杂七杂八方法
java·开发语言
机器视觉知识推荐、就业指导2 小时前
Qt 元对象系统:机制、组成与典型用法
数据库·qt
木井巳2 小时前
【递归算法】计算布尔二叉树的值
java·算法·leetcode·深度优先
2 小时前
java关于时间类
java·开发语言
老蒋每日coding2 小时前
FISCO BCOS 部署Solidity投票智能合约并基于Java SDK 调用智能合约详细指南
java·区块链·智能合约
java1234_小锋2 小时前
Spring里AutoWired与Resource区别?
java·后端·spring
风象南2 小时前
Spring Boot 定时任务多实例互斥执行
java·spring boot·后端
崎岖Qiu2 小时前
【深度剖析】:结合 Spring Bean 的生命周期理解 @PostConstruct 的原理
java·笔记·后端·spring·javaee