3

我想使用多对多关系。如何在 sql 中对学生进行科目和科目与学生。

学生桌有

student_IDno | full name | address |

并且主题表有

subject_IDno| title | description | time |

我想将学生证号分配给科目表,以便科目表可以有学生

我可以在主题表中做同样的事情吗?将科目 ID 号分配给学生表,以便它也可以有科目?

如果我搜索主题代码号,学生将出现,反之亦然,如果我搜索学生代码主题,学生也会出现。

最好的方法是什么?我希望我能很好地解释我的问题,谢谢大家。

4

1 回答 1

1

您引入了第三张表来建立表 STUDENT 和 SUBJECT 之间的关系。让我们调用表CLASS。它将具有以下列:

类ID | student_IDno | subject_IDno

假设一个学生在学校注册。一个条目将被插入到具有唯一 student_IDno 的 STUDENT 中。(让我们说1)

主题列表当然位于 SUBJECT 表中。

现在,如果学生想注册一门学科,他将不得不加入一个班级。现在你将他插入到一个学生 IDno = 1 和 subject_IDno = 他注册的任何科目的班级中。

您的 CLASS 表将如下所示:

classID | student_IDno | subject_IDno
   1    |      1       |     1
   2    |      1       |     2
   3    |      1       |     3

你能看到它是如何显示学生 1 有多少 CLASSes 的吗?

你如何进行搜索?假设您想找到参加 SUBJECT 1 的学生。

SELECT student.* FROM CLASS as class
JOIN SUBJECT as subject ON class.subject_IDno = subject.subject_IDno
JOIN STUDENT as student ON class.student_IDno = student.student_IDno 
WHERE subject.subject_IDno = 1

我把剩下的留给你。我想你应该已经明白了。

更多关于 SQL 加入这里

于 2015-11-02T04:58:30.233 回答