当表使用身份列并且需要在任意键上匹配时,如何使用ms sync框架同步数据库?

本文关键字:何使用 ms sync 数据库 同步 框架 身份 任意键 | 更新日期: 2023-09-27 18:06:40

很抱歉,标题又长又乱。

我有一个客户想要同步三个数据库。(以后可能会更多。)所有三个数据库中的所有数据必须与所有其他数据库同步。这根本不需要是实时的,但可能会每晚运行或类似的东西。

该数据库使用标识列作为主键/外键。

问题是给定的记录可以独立地添加到两个(甚至更多)数据库中,但是相同的数据。例如,我可以在两个站点数据库中都创建一个主街123号的客户John Smith。在这种情况下,我想要FirstName LastName和地址的前8个字符(或者可能是电话号码)来形成合并记录的"匹配键",而不是每次都添加新记录。换句话说,在所有同步完成后,我希望所有3个数据库中只有一条关于Main Street 123的John SMith的记录。

顺便说一下,我想这样做的方式是在云中托管一个"主"数据库。所有三个数据库都将对这个主数据库进行双向同步。

我的主要问题是你如何让它工作?如何为数据库中的表定义"匹配键"。是否像在匹配键上创建唯一约束那样简单?有没有一种方法可以在不改变数据库模式的情况下做到这一点?(我愿意考虑这一点,但如果数据库是第三方的,可能会发生变化。)

Seth

当表使用身份列并且需要在任意键上匹配时,如何使用ms sync框架同步数据库?

如果可以添加一个额外的列,则根据上面指定的"match key"创建一个新列。然后配置Sync框架使用该列作为PK,并忽略表中的实际PK。

方法应该类似于这篇文章:

第3部分-同步客户端和服务器主键不同的表