2

我正在尝试使用 SymmetricDS 为一个中心节点和多个客户端实现多主双向同步。客户端仅与中央节点通信(星形拓扑)。我在处理主键冲突时遇到问题。

例如,数据库包含表“人”,其列 id、name、... 在中央数据库中,我有行:

  1. 啊啊啊
  2. bbb
  3. ccc

第一个客户端连接并下载初始负载,因此它具有相同的数据库。第二个客户也这样做。

现在第一个和第二个客户在他们的本地数据库中创建新行。第一的:

  1. 啊啊啊
  2. bbb
  3. ccc
  4. ddd

第二:

  1. 啊啊啊
  2. bbb
  3. ccc
  4. eee

他们将尝试同步,但在 4. 行中存在冲突。在 SymmetricDS 中可以很容易地检测到这种冲突,但现在我想通过增量键来解决它,直到它被插入,然后将更改发送回客户端......所以结果将是:

  1. 啊啊啊
  2. bbb
  3. ccc
  4. ddd
  5. eee

在每个数据库中。如何做呢?谢谢你。

4

1 回答 1

4

在处理多主双向场景时,使用自动递增 PK 不是一个好主意。

标准做法是为 PK 创建 GUID 以避免客户端之间的冲突。

有关详细信息,请参阅以下网站。

为分布式环境选择合适的主键

于 2014-02-27T21:13:13.503 回答