发布于 1970-01-01 08:00
  • 5 个回答
    • modify_num干脆改成last_modify比较直观,内容就是最后一次修改时间戳,这样同步的时候带上上次同步完的时间戳,服务器把上次同步之后所有更改发回。

      2022-12-01 19:43 回答
    • 两边都维护了一个num,冲突解决如何处理?
      如果最初版本值为0,在网页端和离线客户端编辑,
      同步时,服务器端和客户端的版本值都为1;
      这就是涉及到冲突问题的解决,你说客户端先把大于
      1的值更新,这时候服务器的值也是1,但是内容是变化了的;

      可以考虑使用类似数据库的redo日志;
      服务器和客户端数据修改前都记录日志(含精确的时间戳);
      在客户端联网后,先将客户端离线期间的日志发送到服务器端,
      服务器端按时间点插入日志(客户端服务端日志合并),redo日志;
      然后,将数据同步到客户端;

      2022-12-01 19:43 回答
    • 应该参考git软件内部的实现,有冲突的时候分为可以自动合并和不可以自动合并

      2022-12-01 19:43 回答
    • merge对于普通用户门槛太高 让用户选择一个版本基本就够了 其实最简单的方法就是让用户接受开机自启动 不知不觉完成同步,。,

      2022-12-01 19:43 回答
    • 感谢楼主分享,思路和我的完全一致,但是合并冲突的问题,以modify_num大的优先,以最后操作优先,有点不合理,虽然是极少数的情况,但是最好是让用户选择,当然这样会麻烦很多,不太容易控制。
      很难达到理想状态,所以关于冲突问题,我也是按最大版本号优先的方式实现的。

      2022-12-01 19:43 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有