首页 文章

MySQL考勤系统,连接表的问题,1个主键的重复ID

提问于
浏览
0

好吧我正在为学院创建一个考勤系统,我在使用MySQL的表格时遇到了麻烦

我遇到的问题是将一群学生聚在一起上课 . 所以在MySQL中

表名: CourseGroup: courseGroup_id,student_id(FK),course_id(FK)

我想要一些属于一个 class 的学生,事后看来这将使教师能够为该 class 组注册

在MySQL中,我将'courseGroup_id设置为唯一字段,但是当我尝试在出勤表中链接'courseGroup_id'时,它只允许我选择'student_id'和'course_id'

是否可以选择courseGroup_id并显示一个 class 的学生

我的出勤表如下所示:出勤率:week_number,day,time,courseGroup_id,present

我希望能够查看属于一个 class 的所有学生

1 回答

  • 0

    我对你的术语感到有点迷茫,你说的是“ class ID”,但在你的问题中却没有提到 - 而是你使用“课程” .

    我认为你可以在这里做的最好的选择就是创建另一个能够实现多对多关系的 table ,因为很多学生可以注册到一门或多门课程 . 这种类型的表格将实现学生和课程之间的映射 .

    例如,如果您使用创建映射表“student_courses”

    student_id INT
    course_id INT
    

    然后,您可以按课程选择学生(加入学生表)

    SELECT * from student_courses sc
    INNER JOIN students s
      ON s.student_id = sc.srudent_id
    WHERE sc.course_id = ?CourseId
    

    您也可以将其翻转并显示单个课程的课程:

    SELECT * from student_courses sc
    INNER JOIN courses cs
      ON cs.courset _id = sc.course_id
    WHERE sc.student_id = ?StudentId
    

    值得指出的是,student_courses应该有两个索引,出于性能原因索引student_id和course_id .

相关问题