Sql java 中的交汇点 Table

Sql Junction Table in java

我想使用多对多关系。如何在 sql.

中做学生与科目和科目与学生

学生table有

student_IDno | full name | address |

并且主题 table 有

subject_IDno| title | description | time |

我想把学号分配给 主题 table 这样主题 table 可以有学生

我可以在主题 table 中做同样的事情吗?将科目编号分配给学生 table 这样它也可以有一个科目 ?

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

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

您引入第三个 table 来建立 table 学生和主题之间的关系。让我们调用 table CLASS。它将包含以下列:

classID | student_IDno | subject_IDno

比方说一个学生就读于学校。一个条目将被插入到具有唯一 student_IDno 的 STUDENT。 (比方说 1)

主题列表当然位于主题 table 上。

现在如果学生想注册一个科目,他将不得不加入 CLASS。现在你把他插入 class 中 student_IDno = 1 和 subject_IDno = 他注册的任何科目。

您的 CLASS table 将如下所示:

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

剩下的交给你了。我想你明白了。

more on SQL join here