我正在开发一个项目,其中一个要求是应用程序在离线模式下工作。所以我创建了一个脱机MySQLite数据库,它是在线数据库的副本。现在在Android应用程序中,员工将完成工作,而某些表中的某些行将更新,或者某些行将被插入,但从未删除。
我使用了“Version”方法,在那里我向表中添加了一个“Version”列,每次更新一行时都会增加版本。
问题在于插入部分。该应用程序是多用户,如果表中有5行,则应用程序无法再连接到远程数据库(因此应用程序必须使用脱机数据库),如果用户1添加2行,用户2也添加2行,则它们各自的离线数据库(在不同的设备上)它们都具有相同的ID,最初,我想从远程数据库检查maxID,从离线mysqli DB检查maxID,并将所有新行插入在线数据库,但这不会起作用。
一旦连接重新联机,如何将新行的脱机数据库同步到远程数据库的任何简单解决方案?
答案 0 :(得分:0)
使用id同步数据不是个好主意
你应该从你的移动应用程序向服务器发出更新请求,发送它的上次更新的时间戳(如果你没有从你的离线设计应用程序添加到远程服务器数据库的行很容易)
您应该请求创建或更新行的位置比移动时间戳更新
ps:在android的app数据库中是SQLite,不知道你可以使用其他db