我有一个 postgreSql数据库,它由Android应用程序通过Web服务操作。 我想知道为我的应用程序制作离线模式的最佳方法是什么。
我的第一个想法是在设备无法访问网络时使用 sqlite本地数据库
我想知道是否有现有的工具,一旦设备可以访问网络,就可以轻松地使用现有的postgres数据库同步
答案 0 :(得分:4)
以下是一些非常基本的想法。
在理想情况下,您将同步一般工作元数据,而离线模式将允许仅插入工作流基于该元数据添加新数据。这样就可以通过以后顺序发布到Web服务然后在数据库中标记或完全删除行来轻松地同步事物。
如果你使用类似的东西,你可能真的不想将sqlite作为rdbms。您可能想要的是一个宽表结构,主要用于存储待处理的需求,或者存储诸如稍后将发送的json有效负载之类的东西。这意味着您的本地数据库不是围绕您的数据模型而是围绕您的Web服务API设计的。
如果您必须进行更新(覆盖工作流程),那么您需要在解决冲突方面投入大量精力,但基本相同。您可能希望添加更多信息,如时间戳和其他与冲突解决方案相关的数据。
然而,从那里你应该能够重新使用你的应用程序API来进行同步,而不是寻找一个特定的工具来完成它。