【问题标题】:Best practice : when to load data from remote DB最佳实践:何时从远程数据库加载数据
【发布时间】:2015-03-05 14:11:32
【问题描述】:

当我制作应用程序时,我总是想知道何时是从远程数据库加载数据的最佳时机。
如果应用要求登录屏幕,则:

  1. 在他的时间从远程数据库启动每个数据,然后在应用程序中使用它们会更好吗?这样,应用程序在登录屏幕后会更快(无需更多查询来检索某些数据)
  2. 仅在我们需要使用数据时才加载数据是否更好(例如,将数据库中的一些数据显示到应用程序中)。这样,登录速度要快得多,但应用程序可能比第一种情况慢。

你们怎么看?

【问题讨论】:

    标签: java android database performance


    【解决方案1】:

    这取决于场景,但我会选择选项 2:首先,授予用户访问权限,并在需要时从后端检索数据。

    想象一个非常简单的场景,用户登录以查看他可以使用的产品列表(添加和删除)。该解决方案将包括 2 个屏幕:

    • 用于管理用户访问的登录屏幕
    • 使用产品的产品列表屏幕

    对我来说,在一个好的设计中,每个屏幕都有自己的职责,每个屏幕应该只查询它要管理的数据。

    • 登录屏幕的职责只是执行登录,然后导航到产品屏幕。
    • 产品屏幕的职责是在用户结束编辑时检索、显示和存储产品。

    如果您的登录屏幕查询产品数据以将其传递到产品屏幕,则您正在耦合登录屏幕和产品数据。

    无论如何,如果您有一组可供多个屏幕使用的静态数据(例如产品类别),您可以在第一次需要它们时查询它们并将它们存储在缓存中以供进一步访问。

    如果可能存在连接问题,则可能是另一种情况。在这种情况下,最好的解决方案可能是下载一组用户可以使用的数据,对其进行编辑,然后将它们上传到后端(考虑到可能的并发问题)。

    【讨论】:

      【解决方案2】:

      如果你想登录你的用户,你必须调用远程数据库来验证用户。如果没有远程数据库,我看不到在哪里可以做到这一点。 否则你是正确的,如果你想显示你得到的数据,你应该只查询数据库。

      【讨论】:

      • 我的意思是,例如,如果用户有一些汽车或一些房子等......它们也在数据库中。
      • 嗯,我真的不明白你的意思。对不起。你是什​​么意思是一些汽车/一些房子?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 2018-12-06
      • 1970-01-01
      • 2017-06-24
      • 2014-02-13
      • 2011-01-17
      • 1970-01-01
      相关资源
      最近更新 更多