SQL 学生、课程和出勤之间的关系

SQL relationship between student, lessons and attendance

对于一个学校项目,我试图存储学生、他们的出勤情况以及他们可以查看哪些在线课程。

例如,允许黄带学生观看白带和黄带课程。带系统被一个 kyu 取代,它也可以有一个 dan。

到目前为止,我已经创建了以下内容:

我一直在寻找课程和学生之间可能的关系,因为仅仅把 FK 放在学生的课程中感觉是错误的。

据我所知,这只是一个大class,所以我无法在学生-class和class-课之间建立关系。

据我了解,应该是多对多的关系,因为很多学生可以上同一堂课,学生可以有很多课,所以另一个 table 持有学生和 leason id 就可以解决问题,我觉得

我了解到您在课程和学生之间存在 N-M 关系,其中每个学生可以注册多个课程,并且每个课程可能(并且希望)由许多学生学习。

表示这种关系的典型方法是创建一个桥梁 table,它存储哪个学生参加了哪个课程。说 table student_lesson :

  • id : 主键
  • lessonID : table 课程的外键
  • studentID : table student
  • 的外键

您需要在列 (lessonID, studentID) 上创建唯一约束 - 或者删除跳过 id,并使 (lessonID, studentID) 成为桥 table 的主键。