【问题标题】:SQL relationship between student, lessons and attendance学生,课程和出勤之间的SQL关系
【发布时间】:2019-07-11 06:54:35
【问题描述】:

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

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

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

  • Student: studentID (PK), firstname, lastname, age, kyu, dan
  • Attendance:出勤ID(PK),学生ID(FK),日期
  • Lesson: courseID(PK), name, kyu, dan

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

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

【问题讨论】:

  • 是否可以在出勤中添加另一个 FK 字段?例如,课程 ID。编辑:应该把它作为评论。

标签: sql database foreign-keys erd


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    据我了解,应该是多对多的关系,因为很多学生可以上同一节课,学生可以有很多课,所以我认为另一张桌子持有学生和课时ID就可以解决问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-03
      • 2020-06-24
      • 2019-11-30
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多