簡體   English   中英

如何關聯兩個表中的多行?

[英]How do I relate multiple rows in two tables?

我有兩張桌子:

表格1:

id(int) | stuff(text)
-------------------------
1       | foobarfoobarfoo
2       | blahfooblah
3       | foo

表2:

id(int) | otherstuff(text)
--------------------------
1       | foo
2       | bar
3       | blah

table1中的一行可以有多個foo,bar等。而且,table2中的每一行都可以出現在table1的多行中。

這是保持這種直線的更好方法。 我應該創建這樣的第三個表:

表3:

id_from2(int) | id_from1(int)
-----------------------------
1             | 1
1             | 2
1             | 3
2             | 1
3             | 2

或者,我應該在table1和table2中添加一個類型數組列來跟蹤相同的信息嗎?

是的,使用聯結表是在RDBMS中實現多對多關系的正確方法。

如有必要,您可以向聯結表(即table3 )添加更多屬性。 例如,如果關系是有序的 ,則可以添加第三個字段,該字段指定(table1, table2)組合的順序。 下面是Stack Overflow上一個答案的鏈接 ,它提供了一個多對多表的詳細示例。

這是一個標准的多對多設計,最靈活的解決方案將是第三個具有id關聯的表,如圖所示。

不能同意更多。 您添加第三個表的設計是正確的。

關系表是關聯多對多關系的最佳方式。 你做得很好。

所以你想要多對多的關系? 表1中的一個可以與2中的更多對象相關,反之亦然? 是的,像你說的那樣使用第三張桌子,這是最好的做法。 還要附加主鍵自動增量列,以確保安全

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM