2010-01-25 100 views
3

我有一个有点问题的,而且说实话,我不认为有一个答案,但我给它一试无妨。SQL Server 2008中跨数据库表的连接(关系)

所以,我有两个数据库[A] - >公司及[B] - >产品。两个数据库都有一个国家/地区表,然后将其链接到每个单独数据库中的其他表。问题是两个国家/地区表格之间的数据是完全重复的。所以,我基本上是有重复某些关系中的每个数据库,以及最重要的是维护只是很难...

所以,我很好奇,是有办法创建表之间的跨数据库的关系所以我只能拥有一套控制两个数据库的Country + Helper表。

在此先感谢!

回答

2

那么你可能要考虑有一个交易数据库,两个数据库实现数据持久化?很多工作,但它似乎是最好的可行选项 - 写入中的每个事务都会触发写入每个“读取”数据库?我不确定我是否完全理解了这个问题,也许?

+0

我在想类似的事情。我正在考虑第三个数据库[C],这个数据库将是只读的,[A]和[B]将具有仍然基于[C]中的主键的“假”关系,我只需要在代码中进行链接。不是很漂亮,但它可以降低两个数据库的复杂性。 – Gup3rSuR4c 2010-01-25 23:19:07

+0

嗯,这是一种方式。如果您对分片概念和RAID存储进行一些研究,您可能会有一些想法。我认为您希望将事务的复杂性降低到一个数据库,然后将结果分发到每个存储数据库。沿着这些线的东西。 – 2010-01-26 00:34:33

0

你不能用外键约束上做到这一点。你可以强制与触发器建立关系,但这有点痛苦。

4

您不能跨越多个数据库的物理关系,执行FK约束。

您仍然可以在一个数据库中拥有核心查找/帮助表,但是您只需从其他数据库中的表推断FK约束 - 这是一个逻辑假设,而不是物理约束。

0

请第一个数据库表&在第二个数据库中创建此表的视图

0

是。将国家/地区表保存在第1个数据库中,并将数据库1的国家/地区表的视图创建到数据库2。没有物理数据只有视图,所以不需要恐慌。