1

我正在尝试设计一个数据库结构。它将安装到几个 sql 服务器实例中。我需要定期合并这些数据库。

问题出在 中server_A (PK)id=222 user=Tom,但在server_B (PK)id=222 user=Peter.

因此,在server_Afor Tom, (FK)userid=222, Address=1 abc street... 中,但(FK)userid=222server_B地址表中相同的含义不同。

我能想到的就是这种便宜的方法。如果我有 3 台服务器,我会在第 1 台服务器中播种 id,从 开始1000000001,第 2 台服务器在2000000001,第 3 台在3000000001.... 所以他们不会重复自己,这可能适用于一个小型项目吗?而且我不需要使用 Guid/uniqueidentifier 来使问题进一步复杂化?

这种情况的常见/正确方法是什么?

4

3 回答 3

1

您可以将 aserver_id作为外键添加,该外键现在与原始主键一起成为复合主键的一部分。每个服务器都有自己的 id。

于 2012-05-26T00:31:05.397 回答
0

使用 SQL Server 的合并复制功能,它将为您处理。

于 2012-05-25T12:29:50.513 回答
0

使用 GUID 而不是整数作为主键。即使在不同的系统上生成它们也是独一无二的。

我不是 SQL Server 合并复制方面的专家,但是根据这篇文章,它无法自动解决冲突的 PK,因此最好首先避免冲突的 PK。

于 2012-05-25T20:08:33.607 回答