[数据库设计]关于学校相关项目的班级-课程数据库的设计的问题
项目背景:
一款与学校对接的在线上课系统,从学校获取学生名单导入项目,学生可以登录系统查看班级老师所发布的课程,购买课程,在线上课.
由于是与学校对接的,所以班级信息也需要建立一个数据库进行保存.
学生在登录系统之后,会显示自己学校的授课老师已发布的课程(一般为9门课程),学生可以直接购买观看,为了获取到这些信息,所以需要一个 班级-课程关联表,根据登录系统的学生的班级信息获取到相关的课程信息.
目前的设计方案如下(无关字段已略去):
1.班级表
ID
org_id 学校ID
grade_id 年级ID
class_id 班级ID
header_id 班主任ID
2.学生表班级相关
id 学生ID
org_id 学校ID
grade_id 年级ID
class_id 班级ID
3.班级-课程表
ID
org_id 学校ID
grade_id 年级ID
class_id 班级ID
course_id 课程ID
creator_id 授课老师ID
关联查询时,是根据学校年级班级三个字段进行关联的.
问题:
由于是学校相关的项目,存在一个学生升年级,分班的问题;
优点:学生信息修改便捷
学生信息在每年可以通过excel文件批量导入和修改,所以这样设计的话,批量修改的问题不大;
缺点:班级信息修改困难
这种设计存在问题是,当年级班级变更时,
原班级-课程表中的相关记录需要删除掉,否则升学的学生会因为班号获取到前一个年级学生已上的课程.
班级表中的相关记录也需删掉重新添加,因为班号班主任等信息会有大的变化,修改困难.
导致该数据库每年都需要大量的删除和修改,不利于维护.但目前没有想到什么更加合适的方案.
想看一下论坛上有没有愿意讨论的朋友QAQ
不知道问题有没有描述清楚,哪里不清楚欢迎随时提问!