如何关联两个表中的多行?

Utk*_*nos 2 sql

我有两张桌子:

表格1:

id(int) | stuff(text)
-------------------------
1       | foobarfoobarfoo
2       | blahfooblah
3       | foo
Run Code Online (Sandbox Code Playgroud)

表2:

id(int) | otherstuff(text)
--------------------------
1       | foo
2       | bar
3       | blah
Run Code Online (Sandbox Code Playgroud)

table1中的一行可以有多个foo,bar等.而且,table2中的每一行都可以出现在table1的多行中.

这是保持这种直线的更好方法.我应该创建这样的第三个表:

表3:

id_from2(int) | id_from1(int)
-----------------------------
1             | 1
1             | 2
1             | 3
2             | 1
3             | 2
Run Code Online (Sandbox Code Playgroud)

或者,我应该在table1和table2中添加一个类型数组列来跟踪相同的信息吗?

das*_*ght 5

是的,使用联结表是在RDBMS中实现多对多关系的正确方法.

table3如有必要,可以向联结表添加更多属性(即).例如,如果关系是有序的,则可以添加指定(table1, table2)组合顺序的第三个字段.下面是Stack Overflow上一个答案的链接,它提供了一个多对多表的详细示例.