1

我正在构建一个复杂的平台,并且我想为它的每个“模块”都有一个专用的数据库。但我需要有一个“主”数据库,它有一些像users表一样的通用表。我需要能够在多个数据库中的表之间拥有外键。 (如user_id)多个数据库中的表之间的关系

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

因此,我正在寻找我的所有选择,然后再作出我的决定。

你对此有什么要求?

我正在使用mysql。

+1

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

回答

4

您可以使用FEDERATED storage engine来做到这一点。你所做的是使用FEDERATED引擎创建一个本地表,然后它将连接到远程系统来解析查询。不过,我不知道这个表现。


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

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

+0

我将检查联合表。 – brpaz

相关问题