我想使用多对多关系。如何在 sql 中做 student with subjects 和 subject with students。
学生表有
student_IDno | full name | address |
主题表有
subject_IDno|标题 |说明 |时间 |
我想把学号分配给 subject表,让subject表可以有students
我可以在主题表中做同样的事情吗?将主题 ID 编号分配给学生表,以便它也可以有一个主题?
如果我搜索主题代码,学生将会出现, 反之亦然,如果我搜索学生代码科目也会出现。
最好的方法是什么?我希望我能很好地解释我的问题,谢谢你们。
最佳答案
您引入了第三个表来建立表 STUDENT 和 SUBJECT 之间的关系。让我们调用表 CLASS。它将包含以下列:
类号 |学生证号 | subject_IDno
假设一名学生就读于学校。一个条目将被插入到具有唯一 student_IDno 的 STUDENT。 (比方说 1)
Subject 列表当然位于 SUBJECT 表中。
现在如果学生想注册一个科目,他将不得不加入一个类(class)。现在,您将他插入到 student_IDno = 1 和 subject_IDno = 他注册的任何科目的类(class)中。
您的 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
剩下的就交给你了。我想你明白了。
关于java - Java 中的 SQL 联结表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33468750/