[英]Is that many-to-many sql relationship?
我有兩個表:
A (id, name)
B (idA1, idA2, ...)
idA1
和idA2
組合是一個主鍵。 同時idA1
和idA2
是tableA
外鍵。
這是多對多的關系嗎?
是的。 根據所提供的信息,沒有什么可以阻止多個不同的 idA2 值與相同的 idA1 值組合出現在 B 中,也沒有任何內容可以防止多個不同的 idA1 值出現在 B 中與相同的 idA2 值組合。 因此,出現在 A 中的每個 id 都可能與 A 中的許多其他 id 值(通過 idA1 -> idA2)以及其他方向(通過 idA2 -> idA1)相關聯。
這是一個多對多的關系,其特殊性在於引用表和被引用表是相同的。
基本上, tableA
每條記錄都可以通過橋表tableB
引用同一個表中的 0、1 或幾條記錄。
想到的一個比較是樹的表示,其中tableA
存儲節點, tableB
是一個閉包 table ,它存儲所有可能的層次結構路徑(例如在這個 SO question 中解釋)。
nodes
表:
id name
1 foo
2 bar
3 baz
4 zoo
paths
表:
parent child
1 1
1 2
1 3
1 4
2 3
2 4
它代表一棵樹,如:
1
|
2
/ \
3 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.