我们有一个android应用程序和一个iPhone应用程序(相同的功能),使用sqlite本地数据存储。应用程序最初没有数据,然后在第一次运行时,它们从远程服务器接收数据并将其存储在sqlite数据库中。 sqlite数据库由服务器创建,应用程序将其作为一个文件下载,然后用于购买应用程序。按照今天的标准,数据库文件不是很大,但也不是很小 - 大约5-6 MB。同步/更新sqlite数据库
现在,有一段时间,应用程序需要刷新服务器中的数据。有几种方法可以考虑:
从服务器下载新的完整数据库并替换现有的数据库。这听起来像是处理这个问题最简单的方法,不是因为重复5-6 MB的下载。这些应用程序确实会提示用户是否要下载更新,因此这可能不是太大问题。
从服务器上下载增量数据库,其中只包含新的/修改的记录,并以某种形式提供有关要删除哪些记录的信息。这将导致更小的下载量,但客户端的工作更复杂。我需要读取一个数据库,并根据读取的内容更新另一个数据库。据我所知,没有办法用sqlite来做类似
insert into db1.table1 (select * from db2.table1)
的地方,其中db1
和db2
是两个包含结构相同的table1
的sqlite数据库。 (完整的sqlite数据库包含大约10个表,最大的可能包含约500个记录左右)。下载某些其他格式(json,xml等)中的数据增量并使用此信息更新应用程序中的数据库。与以前一样:在服务器端没有太多问题,比完整的数据库更小的下载大小,但是执行更新是一个非常痛苦的过程。
您推荐三种方法中的哪一种?或者,也许还有另一种我错过的方式?
非常感谢提前。
https://stackoverflow.com/questions/4008015/android-sqlite-bidirectional-synchronization-sqlite – 2017-07-01 03:39:52