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

时间:2019-02-17 21:43:14

标签: sql database foreign-keys erd

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

例如,允许黄带学生观看白带和黄带课程。腰带系统由kyu代替,该kyu也可以带有dan。

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

  • Student:学生ID(PK),名字,姓氏,年龄,圭,丹
  • Attendance:考勤ID(PK),学生ID(FK),日期
  • Lesson:lessonID(PK),名称,kyu,dan

我坚持要在课程和学生之间找到一种可能的关系,因为仅仅将FK放在学生的课程上是不对的。

据我所知,这只是一堂大课,所以我无法在学生课​​和课堂课之间建立联系。

2 个答案:

答案 0 :(得分:1)

我了解您在课程与学生之间存在N-M关系,每个学生可以参加几节课,并且每堂课可能(并且希望是)很多学生参加。

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

  • id:主键
  • lessonID:表课程的外键
  • studentID:面向学生的外键

您将需要在列(课程ID,studentID)上创建唯一约束-或跳过id,并将(课程ID,studentID)作为桥表的主键。

答案 1 :(得分:0)

据我了解,应该是多对多的关系,因为许多学生可以参加同一堂课,并且学生可以有许多课程,所以我认为另外一个保存学生和课程ID的表可以解决这个问题, / p>