关于同步过程的逻辑困境

时间:2014-10-31 12:19:31

标签: mysql logic

我维护和开发一个在线使用但也在线下使用的网络应用程序 (脱机意义安装在使用MySQL作为数据库的30台笔记本电脑上)

对于使用离线版本的人,我有一个同步系统 此同步将新更新的信息从实时版本交换到离线版本,反之亦然。

我有一个经常出现的问题,有时同步有效,有时则无效 (通常是关于重复密钥已经存在。)

我有约会表,其 ID(主键)
您如何确定离线创建的约会与在线已经存在的约会相同,反之亦然? 这个确切的约会没有离线和在线的相同ID。

希望很清楚!

1 个答案:

答案 0 :(得分:0)

为什么离线和在线ID不同?同步系统不会从在线数据库中复制具有所有相同信息的同一行吗?

无论如何,您需要实现一个逻辑来创建离线ID,其中至少有一部分可以唯一地绑定到离线工作站/用户。

例如:如果您处于离线状态并希望保存新约会,请构建一个如下所示的ID:

"useridWhoCreatedTheAppointment + UserLocalCounter"

"useridWhoCreatedTheAppointment + datetimeToString(ddMMyyHHmmssSSS)"

这样你就不会有任何重复的密钥。