首页 > 解决方案 > 将离线 Mysqlite 同步到远程数据库

问题描述

我正在做一个项目,其中一个要求是应用程序在离线模式下工作。所以我创建了一个离线 MySQLite 数据库,它是在线数据库的副本。现在在 android 应用程序中,员工将完成他们的工作,而某些表中的某些行将被更新,或者某些行将被插入,但永远不会被删除。

我使用了“版本”方法,在表格中添加了“版本”列,每次更新一行时,它都会增加版本。

问题出在插入部分。该应用程序是多用户的,如果在应用程序无法再连接到远程数据库之前表中有 5 行(因此应用程序必须使用离线数据库)并且如果用户 1 添加 2 行并且用户 2 也添加 2 行,在他们各自的离线数据库(在不同的设备上)它们都将具有相同的 ID,最初,我想检查远程数据库中的 maxID 和离线 mysqli 数据库中的 maxID 并将所有新行插入在线数据库,但这不起作用。

一旦连接重新上线,任何简单的解决方案如何将新的离线数据库行同步到远程数据库?

标签: databasedata-synchronization

解决方案


使用 id 同步数据不是一个好主意
,您应该从您的移动应用程序向服务器发出更新请求,该服务器发送它的上次更新的时间戳(如果您不从离线设计应用程序添加行到远程服务器数据库非常容易)
你应该请求创建或更新的行比你的移动时间戳更新


ps:android的app数据库是SQLite,不知道可以用其他数据库


推荐阅读