我正在尝试为一个中央节点和许多客户端实现多主双向同步,使用对称性。客户端仅与中央节点(星拓扑)通信。我有问题处理主要键的冲突。

例如数据库包含具有列ID的表“人”,名称,...在Central DB中,我有行:

  1. aaa
  2. BBB
  3. CCC
  4. first客户端连接和下载初始加载,因此它具有相同的数据库。第二个客户端。

    现在,第一个和第二个客户端在本地DB中创建新行。 第一:

    1. aaa
    2. BBB
    3. CCC
    4. ddd
    5. 第二:

      1. aaa
      2. BBB
      3. CCC
      4. Eee
      5. 他们会尝试同步,但是4.行有冲突。这种冲突可以很容易地在对称性中检测到,但现在我想通过增量键来解决它,直到它插入,然后将更改返回给客户端... 所以结果将是:

        1. aaa
        2. BBB
        3. CCC
        4. ddd
        5. Eee
        6. 在每个数据库中。如何做呢?谢谢。

有帮助吗?

解决方案

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top