【问题标题】:Multiple Database Associative Entity多数据库关联实体
【发布时间】:2011-08-04 23:38:29
【问题描述】:

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

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

【问题讨论】:

  • 有必要拥有两个不同的数据库吗?

标签: database-design


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    您的可能,但请记住,在给定的时间,一个数据库可能因维护而停机、不可用或负载过重等。因此,即使您可以做到,拥有跨数据库外键也可能不是一个好主意。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 2022-01-04
      相关资源
      最近更新 更多