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

问题描述 投票:0回答:2

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

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

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

  • Student:studentID(PK),名字,姓氏,年龄,kyu,dan
  • Attendance:attendanceID(PK),studentID(FK),日期
  • Lesson:lessonID(PK),name,kyu,dan

我坚持在课堂和学生之间找到可能的关系,因为把FK放到学生课上感觉不对。

据我所知,这只是一个大班,所以我不能在学生班和班级课之间形成关系。

sql database foreign-keys erd
2个回答
1
投票

我知道你在课程和学生之间有一个N-M关系,每个学生可以参加几个课程,每个课程可能(并且希望是)由许多学生参加。

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

  • id:主键
  • lessonID:桌上课的外键
  • studentID:对表学生的外键

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


0
投票

据我所知,它应该是多对多的关系,因为许多学生可以上同一课,学生可以有很多的理由,所以另一个拿着学生和leason id的表会解决问题,我想

© www.soinside.com 2019 - 2024. All rights reserved.