
服务端数据库:MySQL 。
手机端数据库:SQLite 。
软件本地有一份数据,云端数据是本地数据的备份,没什么区别。
我初步的想法,就是挨个比较它们的字段 id ,但是有点担心性能问题。
1 v2hh Jan 10, 2024 md5 比对? |
2 linauror Jan 10, 2024 后一条依次存前一条的特征,这样直接对比最后一条数据就可以了 |
3 johnnyyeen Jan 10, 2024 按一定规则做数字摘要 |
4 siweipancc Jan 10, 2024 via iPhone 楼上说的,id 跟数据 md5 的表,数据变动主动维护,传递这个表就行,记得加 audit 时间列 |
5 815979670 Jan 10, 2024 通过 crc32 / md5 生成校验码 |
6 kuituosi Jan 10, 2024 分段比较 hash 或者 id 如果只比较行数 id 就够了,如果担心内容不一样就比较 hash |
7 tool2d Jan 10, 2024 既然说了"云端数据是本地数据的备份",那就是走主从备份流程。完全不担心内容数据是否一致,这个是备份协议考虑的。 你只需要把修改过的 row 同步过去就可以了。 一般 row 都会有最后修改日期,如果你每天同步一次,那么所有提交 row 对象就是 24 小时内变动过的。 |
11 tool2d Jan 10, 2024 @nnegier 比如有三条记录需要更新,你客户端用 websocket 发了三条数据,最后服务器只收到一条半数据,那么服务器的最后修改时间,就只写到第一条的时间。 下次客户端再更新,后两条在修改时间以外,都要重新上传的。 |
12 Beats Jan 10, 2024 md5 crc 啥的 |
13 nnegier OP |