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

标签 android mysql database sqlite mobile

我正在开发一款基本上可以让人们创建、加入和管理其他人的群组的应用程序。群内的人也可以互相发消息。

我一直在想哪条路会更好:

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

    • 移动应用程序和远程数据库通常做什么?
    • 如果我只做第 1 项,会不会是“不好的做法”?

最佳答案

在我看来,在大多数情况下,手机中的数据库只是真实数据库的缓存,即服务器中的数据库。因此,我的建议是将您需要与服务器同步的所有数据保存在本地。这使您即使在没有连接时也能显示信息,并在信息更新时向用户显示一些内容。

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

  • 所有信息都在服务器中
  • 通过后台进程(服务、线程、intentservice,任何最适合您的方式),您可以将此信息与本地数据库同步
  • UI 始终显示来自本地数据库的信息

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

关于android - 我应该保留远程数据库的本地副本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342403/

相关文章:

android - 使用 android camera2 API 显示相机提要

.net - 关闭数据库连接

php - Android MySQL Php 应用程序尝试在 php 中使用 post 语句存储用户详细信息

android - 将图像添加到项目(微调器)

mysql - SQL 查询中的 Join + 日期条件

php - "ORDER BY FIELD"MySQL 似乎无法工作

javascript - 了解数据库表是否已更新的最有效方法

android - 如何在Android中创建登录数据库

android-如何触发通知onclick事件?或者如何仅在用户点击时获取数据

mysql - MySQL bigint转UUID的存储过程