这更多是一个概念问题,不一定与任何特定技术有关。假设您在服务器上有一些数据库,一些 REST/JSON API 来访问该数据库中的内容,以及一些显示通过 API 检索的数据的移动客户端。
最好在客户端上有一些缓存机制,并且只要客户端只读取数据就能够启用对数据的脱机访问(在我的情况下,拒绝对脱机客户端的写访问是很好的,以避免不得不管理所有可能发生的令人讨厌的冲突)。
似乎解决这个问题的一个好方法是在客户端上存在服务器数据库模型的一个子集,并将数据从服务器同步到客户端。对本地数据库的访问可能会立即返回结果,但也会触发对服务器的更新请求。如果服务器返回修改后的数据,客户端模型会同步它的本地数据库并通知数据更改的显示。
最终的目标当然是用户可以浏览信息而不管他的互联网连接的稳定性,并且只要他不修改任何数据,就不会被连接对话框或类似内容所困扰。
现在从实现的角度来看......一方面,将服务器数据库直接耦合到客户端数据库似乎是一个坏主意,因为它们可能来自不同的供应商。我想至少在两个数据库实现之上都需要一个独立于供应商的模型。另一方面,将服务器数据库中的数据转换为某种传输格式,然后再将其放回客户端数据库似乎需要很多开销。
任何建议如何以优雅和可维护的方式解决这个问题?