0

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

我遇到的问题是将一组学生分组在一起上课。所以在 MySQL

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

我想要一些属于一个班级的学生,事后看来,这将使老师能够为该班级组进行注册

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

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

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

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

4

1 回答 1

0

我对你的术语有点迷茫,你说的是“class id”,但在你的问题中不要冷淡——而是使用“course”。

我认为您可以在此处执行的最佳选择是创建另一个表,以启用多对多关系,因为可以将许多学生注册到一门或多门课程。这种类型的表将启用学生和课程之间的映射。

例如,如果您创建映射表“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。

于 2013-03-07T20:12:48.930 回答