我应该保留远程数据库的本地副本吗?

时间:2014-06-21 14:11:46

标签: android mysql database sqlite mobile

我正在开发一个应用程序,基本上允许人们创建,加入和管理其他人的组。小组内的人也可以互相发信息。

我一直想知道哪条路会更好:

  1. 使远程数据库保留所有信息,包括发送给用户和从用户发送的消息。并让应用程序在每次需要信息时查询服务器。甚至以前见过的信息。
  2. 为远程数据库保留所有信息,包括发送给用户和从用户发送的消息。还要保留远程数据库的本地副本,并使其与远程数据库保持同步。每当应用程序需要查询信息时,它都会进行查询以查看本地表是否是最新的。如果它不是最新的,它会更新表并在本地表上运行查询。这样它将保留本地副本,并且当没有远程表的更新时,应用程序将具有快速查询。

    • 移动应用程序和远程数据库通常做什么?
    • 是不是"不良做法"如果我只做了1号?

2 个答案:

答案 0 :(得分:3)

从我的角度来看,在大多数情况下,移动设备中的数据库只是真实数据库的缓存,即服务器中的缓存。因此,我的建议是将本地所有需要与服务器同步的数据保存在本地。这样,即使没有连接也可以显示信息,并在信息更新时向用户显示信息。

此外,这种方法使本地数据无风险,因为它存储在服务器中。所以:

  • 所有信息都在服务器中
  • 使用后台进程(服务,线程,intentservice,最适合您),将此信息与本地数据库同步
  • UI始终显示来自本地数据库的信息

当然,这是一种非常通用的方法,需要针对每种情况进行检查,因为不同的情况可能需要采用不同的方法。

答案 1 :(得分:2)

我的基本响应是,我会将数据保存在一个位置并远程访问它,除非有一个主要原因要将其保存在本地。必须有一些情有可原的情况来强制要求我在本地保存一份数据。只需确保您的查询准确,简洁。不要提取超出您需要的数据。

但是,您可以在本地保留一部分数据。特定于用户的项目(如消息),但保留不相关的数据只会增加开销和膨胀。