多个数据库关联实体

时间:2011-08-04 14:49:27

标签: database-design

关于数据库设计的快速提问。

如果我有两个数据库:User_DB和Group_DB,User_DB包含一个名为User_TB的表,而Group_DB包含一个名为Group_TB的表。这是一个多对多的关系,因此用户可以属于多个组,一个组可以拥有多个用户。所以在UserGroup之间有一个关联实体。这张桌子应放在哪里?在User_DB或Group_DB中?

2 个答案:

答案 0 :(得分:0)

假设存在两个独立数据库的正当理由,我倾向于将其保留在“拥有”该关系的数据库中 - 答案将根据如何在问题域中定义实体和关系而有所不同,而且可能是主观的。

在这种情况下,用户属于组 - 这种关系主要倾向于用户而不是组,因此我倾向于将映射保留在User_DB中。

答案 1 :(得分:0)

大多数RDBMS不支持跨数据库外键。

您的可能,但请记住,在给定时间,一个数据库可能已关闭以进行维护,或者不可用,或在负载很重的情况下等等。因此,即使您可以使用跨db外键也不是一个好主意。

因此,我建议将两个表保留在同一个数据库中。