2011-08-04 125 views
0

有關數據庫設計的快速問題。多個數據庫關聯實體

如果我有兩個數據庫:User_DB和Group_DB,並且User_DB包含名爲User_TB的表,並且Group_DB包含名爲Group_TB的表。這是一種多對多的關係,因此用戶可以屬於多個組,並且一個組可以擁有多個用戶。所以他們之間有一個關聯實體UserGroup。這張桌子放在哪裏?在User_DB或Group_DB中?

+3

是否有任何需要有兩個不同的數據庫? –

回答

0

假設有一個有兩個獨立數據庫的正當理由,我傾向於將它保留在擁有「關係」關係的數據庫中 - 答案會根據問題域中實體和關係的定義而有所不同,而且可能會是主觀的。

在這種情況下,用戶屬於組 - 這種關係主要傾向於用戶而不是組,因此我傾向於將映射保留在User_DB中。

0

大多數RDBMS不支持跨數據庫外鍵。

可能是你的,但請記住,在給定的時間內,一個數據庫可能因維護,或不可用,或重負載等原因而停機。因此,即使你可以做到這一點,使用跨數據庫外鍵也不是一個好主意。

因此,我建議將這兩個表保存在同一個數據庫中。