[英]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.