假设有两个用户在脱机时对同一文档进行了更改,但是在文档的不同部分进行了更改。如果用户2在用户1之后又重新联机,则用户1所做的更改会丢失吗?
在我的数据库中,每一行都包含一个JS对象,该对象的一个属性是数组。该数组绑定到接口上的一系列复选框。我想要的是,如果两个用户对这些复选框进行了更改,则将根据更改的时间而不是同步的时间分别为每个复选框保留最新的更改。GroundDB是实现此目标的合适工具吗?是否有任何添加事件处理程序的方式,其中可以添加一些在发生同步时触发的逻辑,该逻辑将负责合并?
简短的答案是“是”,因为逻辑是根据冲突解决方案的行为定制的,所以所有地面数据库版本都没有冲突解决方案。如果要自动化或让用户参与。
旧的Ground DB仅依靠Meteor的冲突解决方案(服务器上的最新数据获胜),我猜您会看到一些问题,具体取决于哪个客户端上线的顺序。
Ground db II没有方法恢复,它或多或少只是一种离线缓存数据的方法。它是在可观察的源上观察的。
我猜您可以为GDB II创建一个中间件观察器-在更新和更新客户端之前,应检查本地数据,或/和调用服务器以更新服务器数据。这样,您将有一种处理冲突的方法。
我想记得要写一些支持“ deletedAt” /“ updatedAt”的代码来进行某些类型的冲突处理,但是冲突处理程序应该在大多数情况下是自定义的。(为可重用的冲突处理程序打开大门可能会很有用)
如果您不通过诸如“ deletedAt”实体之类的“软”删除操作,那么特别是知道何时删除数据可能会很棘手。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句