簡體   English   中英

那是多對多的sql關系嗎?

[英]Is that many-to-many sql relationship?

我有兩個表:

A (id, name) 
B (idA1, idA2, ...)

idA1idA2組合是一個主鍵。 同時idA1idA2tableA外鍵。

這是多對多的關系嗎?

是的。 根據所提供的信息,沒有什么可以阻止多個不同的 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.

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