在构建我的应用程序时,我遇到了一个问题。我有一些包含信息的数据库表,我想重用于不同的应用程序。主要用于身份验证和用户权限。
这就是为什么我决定将我的数据库拆分成两个,一个用于用户数据(一个用于其他应用程序需要的数据),另一个用于应用程序相关数据(我只需要这个数据)。
在某些情况下,我需要从另一个数据库上的一个数据库引用外键。当数据库处于相同的连接时,我没有遇到任何问题。我是这样做的:
CREATE TABLE `database1`.`table1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`foreign_key` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `table1_foreign_key_foreign` (`foreign_key`),
CONSTRAINT `table1_foreign_key_foreign` FOREIGN KEY (`foreign_key`) REFERENCES `database2`.`table2` (`id`)
);
现在这是我的问题。我开始了解Docker
,我想为每个数据库创建一个容器。如果我的理解是正确的,那么每个容器都充当不同的连接。
甚至可以在不同的数据库连接上引用外键吗?
是否有另一种方法可以从另一个Docker
容器引用外键?
非常感谢任何建议或意见。
答案 0 :(得分:2)
由于多种原因,拥有外键交叉数据库边界是个坏主意。
答案 1 :(得分:0)
不,那是不可能的。您不能将FK创建到不同的DB实例(或者您的情况下的其他Docker容器)。 您可以尝试在应用程序级别进行此检查。