根据Zumero for SQL Server documentation,默认的冲突解决行为是使用记录版本号。
但是,是否可以将其作为时间戳的基础?业务规则是上次更新的记录应该获胜。
此外,是否可以(并且足够简单)将每个客户端设备同步到服务器端数据库的特定子部分?
PS:假设客户端设备的时间与互联网时间大致同步 - 将定期在设备上执行检查。由于数据的性质,如果客户端的时钟是几秒钟,这不是问题。在特殊情况下,更新发生在彼此的5秒内,无论哪一个获胜都无关紧要。最重要的是,平均而且在所有客户中,最后一条记录获胜。
答案 0 :(得分:1)
简而言之,没有。今天不可能通过时间戳选择“获胜”的变化。但你应该质疑这是否真的是你想要的。 :)
Zumero for SQL Server文档不完整,但conflict resolution details in the cloud server docs仍然正确。 (你设置它们的方式发生了变化,但规则本身没有变化。)简而言之:
记录有版本号。除非两个用户修改相同记录的相同版本,否则始终接受最新版本,这与您使用时间戳获得的行为相同(没有与不准确的系统时钟相关的问题)。
如果两个用户修改了相同版本的行,则会发生冲突。默认的冲突解决方案是列合并:
您可以更改冲突解决方案,以便服务器接受同步的最新版本,而无需列合并,这可能是您想要的。从服务器的角度来看,这是最新的记录。您可以将situation_mod_after_mod
分辨率更改为action_accept
。
1.0版(和当前的预览版)允许按表砍掉SQL Server数据库。使用ZSS Manager应用程序,您可以定义 dbfile 。
ZSS Manager documentation中有更多详细信息。