【问题标题】:relations between tables in multiple databases多个数据库中表之间的关系
【发布时间】:2012-06-04 10:38:02
【问题描述】:

我正在构建一个复杂的平台,我想为它的每个“模块”建立一个专用数据库。但我需要有一个“主”数据库,其中包含一些常见的表,如用户表。我需要能够在多个数据库中的表之间拥有外键。 (如 user_id)

我知道如果数据库与它们现在在同一台服务器中,我可以有跨数据库关系,但我不想受此限制,因为如果应用程序增长很多,我可能需要将数据库分成多个服务器。

所以,在做出决定之前,我正在考虑所有的选择。

你对此有什么看法?

我正在使用 mysql。

【问题讨论】:

  • rkosegi,不,不是。这个问题是针对 SQL 服务器的。

标签: mysql database foreign-keys relationship multiple-databases


【解决方案1】:

您可以使用FEDERATED storage engine 执行此操作。您所做的是使用 FEDERATED 引擎创建一个本地表,该引擎反过来将连接到远程系统以解决查询。不过,我不知道它的性能。


更好的方法可能是重新考虑应用程序数据模型。我可以理解您为什么要为复杂系统中的每个模块拥有单独的数据库,但是当您想要共享一些表数据时会变得很困难。如果您对在一个模块中强制执行的数据而不是在另一个模块中强制执行的数据引入一些限制,那么维护将更加困难。

我认为解决方案是分离对数据的关注。让每个模块都有自己的数据库,但不要让模块查询其他数据!如果一个模块需要用户的数据,让它通过user 模块获取。

【讨论】:

  • 我会检查联合表。
猜你喜欢
  • 2021-06-13
  • 2016-08-02
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 2019-11-19
  • 2013-05-13
  • 2013-12-12
  • 1970-01-01
相关资源
最近更新 更多