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