2013-04-30 60 views
2

是否有任何硬性規則和快速規則來創建表的主鍵之外的聯結表?假設我有一張桌子,其結構類似於: enter image description here多對多關係自我加入SQL Server 2008

在這種情況下,有一系列可以一起銷售的物品,但應標記爲危險物品。任何一個物品都可以有多個危險物品。所有項目都使用itemId唯一標識。在多對多的關係中引用表格自身是否可行?我已經看到過其他例子,但它們並不是真正的SQL。

+0

我不會說你正在從表的主鍵中創建一個聯結表。對我來說,這意味着自加入是在主鍵上,但從描述來看並非如此。相反,您是從其他條件上加入的行中返回主鍵值,這非常好。如果你只是在他們的主要關鍵標準上加入兩個表格,那麼你應該得到一對一的關係,這在這種情況下會失敗。 – 2013-04-30 20:47:05

+0

@ Love2學習這就是我們問問題的原因。感謝您對事物的不同看法。 – wootscootinboogie 2013-04-30 20:48:48

+1

您的分界表具有很大的意義,看起來像正確的方式來模擬您的情況。 – 2013-04-30 20:52:01

回答

1

這是您的問題的正確設計,只要您的組合只能是兩項組合。

0

在數據庫設計中,呈現多對多形式的關係的概念設計在物理設計中被轉換爲2個一對多。舉個例子,一個學生可以參加一門或多門課程,一門課程可以有很多學生,所以這是多對多的。因此,在實際設計中,它將是一個學生表,課程表,然後是CourseTaken表,該表具有學生和課程表的主鍵,從而創建一個到多箇中繼。在你的情況下,儘管這兩個表是一個一樣的,但你有虛擬的第三個表,以促進2一對多的關係,所以對我來說仍然是非常可行的方法。