我有一个架构问题。如果您有一个在数据库服务器上存储信息的Web应用程序,理论上,我应该能够将中间层逻辑用于移动应用程序。当移动应用程序启动时,它可以连接并填充本地SQLite数据库或使用JSON在移动应用程序中存储信息。如果移动应用程序还需要在离线模式下工作怎么办?下次连接时是否同步?你有移动下拉并填充一个完整的数据库左右可用吗?构建一个必须从在线到离线的移动应用程序的最佳方法是什么?
答案 0 :(得分:0)
最简单的解决方案是将“LastEdited”列放入数据库中的每个表中,然后查询自上次同步以来已更新的所有数据(如果需要,可以检查索引以进行detirmine更新或插入您自己的本地缓存。) 在这种情况下,删除行的能力实际上应限于布尔“isDeleted”标志,以保持同步过程的简洁。
如果您具有从应用程序编辑或创建行的功能,那么当您可以联机时,您应该保持本地更改表以进行同步,并且可能必须实现某种形式的“合并”逻辑。
答案 1 :(得分:0)
您需要考虑几件事。
如果您的应用是只读的,则应在本地d中实施“增量同步”逻辑。保留上次同步的时间戳并从服务器获取更新。当然,您需要考虑本地数据库大小过大。
如果你的应用是读/写,当离线工作时,你需要考虑双向同步,特别是当相同的记录可以在不同的设备/用户更新时。