为了账号安全,请及时绑定邮箱和手机立即绑定

类似Evernote多客户端与服务器同步数据的最佳方案?

类似Evernote多客户端与服务器同步数据的最佳方案?

江户川乱折腾 2019-04-07 09:38:09
这里说的同步是:手机App内有一个sqlite的数据库,以便他离线时可以增加一些数据,例如拍的照片以及写的文字等.当联网时,自动把离线时写的东西提交给服务器同时,如果用其他客户端改变的旧内容或删除了旧文章,那么在App里也做出对应的修改和删除,保证本地App与服务器始终是一模一样的目前采取的方案是按最后修改时间来做处理,如果ID相同的项目,始终以修改时间最新的那个作为标准,如果App本地数据库出现有服务器不存在的项目,那么就把本地的删除.可有其他更优的方案实现类似Evernote的多客户端同步?
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超4个赞

删除的逻辑有问题
如果本地创建了新项目,服务器是肯定没有的,而本地的就被删除了。
当一个项目被删除时,数据库内仍然应该留有【ID=xx被删除】的删除记录;只要没有这个删除记录,就是新增的记录。若干天后可以清理老的删除记录;天数取决于你认为多长时间所有客户端都会同步一次。
多个客户端在离线状态下改变了同一个文件可能造成冲突
Dropbox的处理方法是复制出一个conflictcopy文件。
我还是偏好覆盖为最新版本,并在服务器保留历史版本若干天。
不过,要判断谁是【最新版本】并不容易。在网络上,你不能保证时钟是同步的。时区的问题容易解决,使用UTC就行。即使如此,UTC绝对时间也无法保证精确。
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 343 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号