ER图设计咨询:教师导师关系处理与学期学年字段归属问题
教学管理系统ER设计问题解答
问题1:导师-教师关系适配资深教师无导师规则
无需强制新增教师类型/角色字段即可满足需求:
- 直接在
teacher教师表中新增可空外键字段supervisor_id,关联教师表自身的主键:- 资深教师无导师的场景下,该字段直接赋值为NULL即可
- 普通教师有对应导师时,存储对应导师的教师ID,天然匹配「一名导师可带多名教师、一名教师仅对应一名导师」的现有设计
- 仅当你的业务存在其他和教师职级绑定的规则(比如授课工作量上限、审批权限差异等)时,才需要新增
teacher_type枚举字段,该字段必须放在teacher实体中,可选枚举值包含SENIOR(资深教师)、ORDINARY(普通教师)即可。
问题2:学年、学期字段的存储位置
必须存放在enrolment入学登记表中,禁止放在student学生表中:
- 学生实体存储的是用户固有属性(姓名、手机号、身份证号等),一个学生可以在多个学年学期入读不同科目,存放在学生表中只能存储单条学年学期信息,完全无法适配实际业务场景
enrolment本身是关联学生与科目的中间表,「某学年某学期入读」属于单次入学关联关系的属性,归属于入学登记表完全符合ER设计范式- 额外优化建议:可将
student_id、subject_id、academic_year、semester四个字段设为联合唯一约束,避免同一名学生同一学期同一科目重复录入入学记录。
内容的提问来源于stack exchange,提问作者ligamero
相关产品推荐
相关产品推荐

