MySQL考勤系统,连接表问题,重复id';s代表1主键

MySQL考勤系统,连接表问题,重复id';s代表1主键,mysql,Mysql,好的,我正在为一所大学创建一个考勤系统,我在MySQL中做表格时遇到了问题 我遇到的问题是把一群学生分成一个班。所以在MySQL中 表名:课程组:课程组id、学生id(FK)、课程id(FK) 我希望一个班级有多个学生,事后来看,这将使教师能够为该班级进行注册 在MySQL中,我将“courseGroup\u id”设置为唯一字段,但是当我尝试在考勤表中链接“courseGroup\u id”时,它只允许我选择“student\u id”和“course\u id” 是否可以选择课程组id并显示

好的,我正在为一所大学创建一个考勤系统,我在MySQL中做表格时遇到了问题

我遇到的问题是把一群学生分成一个班。所以在MySQL中

表名:课程组:课程组id、学生id(FK)、课程id(FK)

我希望一个班级有多个学生,事后来看,这将使教师能够为该班级进行注册

在MySQL中,我将“courseGroup\u id”设置为唯一字段,但是当我尝试在考勤表中链接“courseGroup\u id”时,它只允许我选择“student\u id”和“course\u id”

是否可以选择课程组id并显示一个班级的学生

我的考勤表如下所示: 出席人数:周号、日、时间、课程组id、出席


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

我对你的术语有点不知所措,你说的是“班级id”,但在你的问题中不要冷淡,而是用“课程”

我认为您可以在这里做的最好选择是创建另一个表,以实现多对多关系,因为许多学生可以注册一个或多个课程。这种类型的表将启用学生和课程之间的映射

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

student_id INT
course_id INT
然后可以按课程选择学生(加入学生表)

您还可以将其反转,并通过显示单个课程的课程:

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

还值得指出的是,在学生课程上应该有两个索引,出于性能原因,索引学生id和课程id。

Ok,因此我创建了一个表学生课程(包含学生id(FK)和课程id(FK)在MySQL中,我将如何显示学习课程的学生组,因为这组学生将用于出勤(对不起,上面的术语,我有时会混淆自己)。我在上面给出的第一个查询应该显示注册课程的学生
SELECT * from student_courses sc
INNER JOIN courses cs
  ON cs.courset _id = sc.course_id
WHERE sc.student_id = ?StudentId