我维护和开发一个在线使用但也在线下使用的网络应用程序 (脱机意义安装在使用MySQL作为数据库的30台笔记本电脑上)
对于使用离线版本的人,我有一个同步系统 此同步将新更新的信息从实时版本交换到离线版本,反之亦然。
我有一个经常出现的问题,有时同步有效,有时则无效 (通常是关于重复密钥已经存在。)
我有约会表,其 ID(主键)。
您如何确定离线创建的约会与在线已经存在的约会相同,反之亦然?
这个确切的约会没有离线和在线的相同ID。
希望很清楚!
答案 0 :(得分:0)
为什么离线和在线ID不同?同步系统不会从在线数据库中复制具有所有相同信息的同一行吗?
无论如何,您需要实现一个逻辑来创建离线ID,其中至少有一部分可以唯一地绑定到离线工作站/用户。
例如:如果您处于离线状态并希望保存新约会,请构建一个如下所示的ID:
"useridWhoCreatedTheAppointment + UserLocalCounter"
或
"useridWhoCreatedTheAppointment + datetimeToString(ddMMyyHHmmssSSS)"
这样你就不会有任何重复的密钥。