我有一个由Web服务通过Android应用程序操作的PostgreSQL数据库。我想知道为我的应用程序制作"离线模式"的最佳方法是什么。我的第一个想法是在设备没有网络访问权限时使用SQLite本地数据库。我想知道是否存在现有工具,可以在设备连接到网络后更轻松地将数据与现有的PostgreSQL数据库进行同步。
这里是一些关于此事的基本想法。在理想情况下,你会同步一些通用工作元数据,并且你的离线模式将允许仅插入新数据的工作流程。这将使得稍后通过按顺序发布到网络服务并在数据库中标记或完全移除行来相对容易地同步事物。如果你采用这样的方式,你可能不想把SQLite视为一个关系型数据库管理系统。你可能需要的是一个宽表结构,主要设计用于存储挂起请求,或者可以存储以后发送的JSON负载之类的东西。这意味着你的本地数据库将不是根据你的数据模型设计的,而是根据你的网络服务API设计的。如果你必须进行更新(覆盖工作流程),那么你需要投入很多精力来解决冲突,但基本上同样适用。你可能需要添加更多信息,如时间戳和其他与解决冲突相关的数据。从那里开始,你应该能够重复使用你的应用程序API来进行同步,而不是寻找特定的工具来完成它。