Android 我应该保留远程数据库的本地副本吗?
我正在开发一个应用程序,它基本上允许人们创建、加入和管理其他人的组。小组中的人也可以互相传递信息 我一直想知道哪条路更好:Android 我应该保留远程数据库的本地副本吗?,android,mysql,database,sqlite,mobile,Android,Mysql,Database,Sqlite,Mobile,我正在开发一个应用程序,它基本上允许人们创建、加入和管理其他人的组。小组中的人也可以互相传递信息 我一直想知道哪条路更好: 保存一个包含所有信息的远程数据库,包括发送给用户和来自用户的消息。并让应用程序在每次需要信息时查询服务器。甚至它以前见过的信息 保存一个包含所有信息的远程数据库,包括发送给用户和来自用户的消息。还要保留远程数据库的本地副本,并使其与远程数据库保持同步。每当应用程序需要查询信息时,它都会执行查询以查看本地表是否是最新的。如果不是最新的,它将更新表并在本地表上运行查询。这样,它
- 移动应用程序和远程数据库通常做什么
- 如果我只是做了第一件事,那会是“坏习惯”吗
我的基本反应是,我会将数据保存在一个地方,并远程访问它,除非有主要原因将其保存在本地。必须有情有可原的情况才能强制我在本地保存一份数据副本。只需确保您的查询准确、简洁即可。不要提取超过需要的数据。
但是,您可以在本地保存一部分数据。特定于用户的项目(如消息),但保留不相关的数据只会增加开销和膨胀。在我看来,在大多数情况下,移动设备中的数据库只是真实数据库(服务器中的数据库)的缓存。因此,我的建议是在本地保留所有需要与服务器同步的数据。这允许您在没有连接的情况下显示信息,并在信息更新时向用户显示某些内容 此外,由于本地数据存储在服务器中,这种方法使得本地数据不稳定而没有风险。因此:
- 所有信息都在服务器中
- 使用后台进程(服务、线程、intentservice,任何最适合您的)可以将此信息与本地数据库同步
- 用户界面总是显示来自本地数据库的信息
当然,这是一种非常普遍的方法,需要针对每种情况进行检查,因为不同的情况可能需要不同的方法。有趣的讨论。我认为在设备上缓存消息是个好主意。但是,将数据库与设备同步可能不具有很强的可扩展性,因为它需要与许多用户一起保存太多的信息。为什么不将用户之间发送的消息保存在本地?不这样做是对带宽的浪费。所有大消息应用程序,如Whatsapp、Kik、Telegrame等,都会将消息保存在本地。根据您移动的内容,您可能真的会占用空间。如果不知道你在看什么样的数据,就很难给出具体的答案。如果您只是在谈论存储与本地系统相关的信息,那么是的,但是如果您谈论的是一个完整的信息数据库,而只使用了其中的一小部分,那么您就是在浪费带宽和空间。此外,如果信息是由其他来源更新的,那么您将花费大量时间和精力确保从移动角度来看,信息在许多位置保持最新。输入良好,我同意不应将完整的数据库保存在本地。但是,这些消息可能根本不应该保存在服务器上。您可以通过服务器将消息转发给应用程序的不同用户,而不保存它们(隐私问题)。然后,用户可以随时查看他们交换的消息的本地副本。如果一个用户离线,您可以在服务器上临时缓存消息。在大多数情况下,您会说应该存储消息。取决于你的行业,你必须关注这一方面。是的,需要有缓存消息的能力,并在重新连接时自动下载。消息,是的。它们应该存储在本地。您甚至可以提供选择本地存储信息的功能,以防您位于网络访问受限的区域。但不是整个数据库。