# school_exam_papers 表文档 ## 表概述 **表名**: school_exam_papers **功能**: 试卷管理表,负责管理教务系统中的考试试卷配置,支持随机组卷和手动组卷两种模式,管理试卷题目、分数设置和考试类型 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 试卷编号 selection_mode enum('random','manual') utf8mb4_general_ci NO NULL select,insert,update,references 题目选择模式: random-随机主题, manual-自选题目 total_score decimal(5,2) NULL NO NULL select,insert,update,references 总分 passing_score decimal(5,2) NULL NO NULL select,insert,update,references 合格分数 created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 questions_ids text utf8mb4_general_ci YES NULL select,insert,update,references 问题 id title varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 试卷名称 single_choice_count int NULL NO 0 select,insert,update,references 单选题数量 multiple_choice_count int NULL NO 0 select,insert,update,references 多选题数量 true_false_count int NULL NO 0 select,insert,update,references 判断题数量 every_score decimal(10,1) unsigned NULL NO 0.0 select,insert,update,references 每道题分数 number_answers int NULL YES NULL select,insert,update,references 答题次数 answer_type tinyint NULL YES NULL select,insert,update,references 答题类型 1 员工考试 2 学员考试 ``` ## 功能用途 ### 主要功能 1. **试卷配置管理**: 创建和管理考试试卷的基本配置信息 2. **组卷模式控制**: 支持随机组卷和手动选题两种组卷方式 3. **分数设置管理**: 设置试卷总分、合格分数和每题分数 4. **题型数量控制**: 管理单选题、多选题、判断题的数量配置 5. **题目关联管理**: 通过questions_ids字段关联具体的考试题目 6. **考试类型分类**: 区分员工考试和学员考试两种类型 7. **答题次数限制**: 控制试卷的答题次数限制 8. **试卷命名管理**: 为试卷提供清晰的标题和标识 9. **时间追踪**: 记录试卷的创建和修改时间 ### 业务场景 1. **员工考核**: 创建员工技能考试、入职考试、培训考试试卷 2. **学员测评**: 创建学员课程测试、阶段考试、毕业考试试卷 3. **随机考试**: 使用随机组卷模式创建不同难度的考试 4. **定制考试**: 使用手动选题模式创建针对性考试 5. **分级考试**: 根据不同级别设置不同的合格分数 6. **题型配置**: 根据考试需要配置不同题型的数量比例 7. **重复考试**: 设置答题次数限制,支持多次考试 8. **考试分析**: 基于试卷配置进行考试结果分析 9. **模板管理**: 创建试卷模板供重复使用 ## 关联关系 ### 主要关联表 1. **school_exam_questions**: 考试题目表(questions_ids字段关联) 2. **school_exam_records**: 考试记录表(试卷考试记录关联) 3. **school_exam_answers**: 考试答案表(试卷答题记录关联) 4. **school_personnel**: 人员表(员工考试关联) 5. **school_student**: 学员表(学员考试关联) 6. **school_course**: 课程表(课程考试关联) 7. **school_class**: 班级表(班级考试关联) 8. **school_campus**: 校区表(校区考试管理关联) ### 关联说明 1. **题目关联**: questions_ids字段存储试卷包含的题目ID列表 2. **考试记录**: 考试记录表记录基于此试卷的具体考试实例 3. **答题记录**: 答案表记录学员/员工对此试卷的答题情况 4. **人员关联**: 根据answer_type区分员工考试和学员考试 5. **课程关联**: 试卷可以关联到具体的课程或班级 6. **校区关联**: 试卷可以按校区进行管理和使用 7. **类型关联**: answer_type字段区分不同的考试对象 ## 索引建议 1. **主键索引**: id(已存在) 2. **普通索引**: - title(试卷名称查询) - selection_mode(组卷模式查询) - answer_type(考试类型查询) 3. **复合索引**: - (answer_type, selection_mode)(类型+模式查询) - (total_score, passing_score)(分数范围查询) 4. **时间索引**: - created_at(创建时间查询) - updated_at(更新时间查询) 5. **全文索引**: - title(试卷标题搜索) ## 注意事项 1. **分数逻辑**: passing_score不能大于total_score 2. **题目数量**: 各题型数量之和应与实际题目数量一致 3. **分数计算**: every_score * 题目总数应等于total_score 4. **题目ID格式**: questions_ids字段需要验证JSON格式和题目ID有效性 5. **组卷模式**: 随机模式需要足够的题库支持 6. **答题次数**: number_answers为0表示无限制,大于0表示限制次数 7. **考试类型**: answer_type必须为1(员工)或2(学员) 8. **数据完整性**: 删除试卷前需要检查是否有关联的考试记录 9. **题目更新**: 修改questions_ids时需要重新计算分数 10. **权限控制**: 不同角色对试卷的操作权限需要严格控制 11. **备份策略**: 重要试卷数据需要定期备份 12. **版本管理**: 试卷修改时建议保留历史版本 13. **性能优化**: 大量题目的试卷查询需要考虑性能 14. **审计要求**: 试卷操作需要记录详细的操作日志