关于数据库设计的快速提问。
如果我有两个数据库:User_DB和Group_DB,User_DB包含一个名为User_TB的表,而Group_DB包含一个名为Group_TB的表。这是一个多对多的关系,因此用户可以属于多个组,一个组可以拥有多个用户。所以在UserGroup之间有一个关联实体。这张桌子应放在哪里?在User_DB或Group_DB中?
答案 0 :(得分:0)
假设存在两个独立数据库的正当理由,我倾向于将其保留在“拥有”该关系的数据库中 - 答案将根据如何在问题域中定义实体和关系而有所不同,而且可能是主观的。
在这种情况下,用户属于组 - 这种关系主要倾向于用户而不是组,因此我倾向于将映射保留在User_DB中。
答案 1 :(得分:0)
大多数RDBMS不支持跨数据库外键。
您的可能,但请记住,在给定时间,一个数据库可能已关闭以进行维护,或者不可用,或在负载很重的情况下等等。因此,即使您可以使用跨db外键也不是一个好主意。
因此,我建议将两个表保留在同一个数据库中。