我有一个Android应用程序,它维护不同地理位置的本地SQLite数据库.
现在,我想将该数据库连接到"云"以完成以下任务:
首次安装(或应请求)应用程序时,所有内容的初始下载
本地添加的新位置应(自动)上载到云中
应偶尔判断在线数据库是否有新的在线条目,并将其下载到本地数据库.
在实现这一点上,我有很多问题.
第一个就是how to do it.我认为这涉及到内容提供者和同步提供者,但我不确定具体如何.我是否需要在contentProvider中复制我的SQLite数据库,或者我在底层设计中犯了一个错误,直接使用数据库,而不是通过自定义内容提供者使用数据库?
其次,位置记录不能简单地从在线数据库上下复制,因为它们将具有冲突的ID号.我有几个关系表,比如将tag-id与location-id关联起来的"tag".我的Tag-ID不一定与另一个用户的Tag-ID匹配.位置ID也是如此.因此,在转移过程中需要一些逻辑.Where / how should this be properly handled?这就是内容解析者的角色吗?(不确定那到底是什么)
第三,如果两个用户同时添加相同的位置(可能具有不同的描述和详细信息),会发生什么情况?Is there a best-practice for merging这些记录?
最后,这部分对我来说是全新的.我可以把主数据库放在一个公共dropbox文件夹中,还是需要从头开始构建一个定制的php web应用程序?或者是否有一个预打包的解决方案可以让这部分变得更容易?