客户端上进行缓存并能够启用离线访问数据是很好的,只要客户端仅仅是读取(在我的情况下,拒绝脱机客户端的写入访问是可以的,以避免管理所有可能发生的麻烦冲突)。
解决这个问题的一个好方法似乎是在客户端上有服务器数据库模型的子集,并将数据从服务器同步到客户端。然后访问本地数据库可能会立即返回结果,但也会触发对服务器的更新请求。如果服务器返回已修改的数据,则客户端模型将同步其本地数据库并通知数据更改的显示。
最终的目标当然是让用户能够浏览信息,而不管他的互联网连接稳定与否,并且只要他不修改任何数据,就不会被连接对话框或类似的东西所干扰。
现在从实现的角度来看...一方面,直接将服务器数据库耦合到客户端数据库似乎是一个坏主意,因为它们可能来自不同的供应商。我想,至少需要在两个数据库实现之上有一个供应商无关的模型。另一方面,将数据从服务器数据库转换为某些传输格式,然后将其放回客户端数据库似乎需要很多开销。
有什么建议以优雅和可维护的方式解决这个问题吗?