1

我正在为办公室大厅开发一个特定于站点的安装,它将在 6 个 iPad 上显示内容。安装有几兆字节的数据,这些数据将由 django webapp 管理。我正在考虑从网络应用程序获取内容数据的不同策略。到目前为止,我只是将数据转储为 xml 格式,并通过从 iPad 到内容服务器的单个 http 请求获取它。然后我将所有内容加载到 iPad 上的内存中。

我开始担心随着内容量的增加我可能会遇到内存问题,并且将整个数据库存储在内存中将无法正常工作。下一步自然是考虑 iPad 上的数据库。我将 sqllite 用于内容服务器。在我看来,简单地下载整个数据库文件本身并直接从 iPad 查询它可能是可行的。

建议的方法

每晚从 django 内容服务器下载实际的 sqllite 数据库文件到办公室大厅安装中使用的六台 iPad 中的每台。

我喜欢这种方法的地方:

  • 这可能真的很简单。它从系统中删除了整个 Web 服务层。
  • 它很好地防止了网络问题。如果网络不可用,最糟糕的问题是 iPad 显示陈旧数据,而如果系统依赖于网络,则没有内容。

我不喜欢这种方法的事情

  • 我不确定如何安全地下载文件。如何确保我正在下载的文件处于有效状态,并且在有人更新它时我没有下载?
  • 我从来没有听说过有人这样做,甚至没有考虑过这样做。似乎它远非尝试和真实。

我的问题

  • 谁能想到为什么这是一个坏主意的原因?
  • 如何安全地下载 sqllite 文件并确信它处于有效状态?
4

1 回答 1

0

你为什么不创建一个同步系统——也许用 JSON。

我以前做过这样的事情——我在站点上有一个中央存储库服务器,它正在运行我的 Django Web 应用程序。不同的 iPad 会定期与 Web 应用程序的数据库同步,以确保它们的本地数据与服务器数据匹配,如果不匹配,它将通过 json 更新。

在 iPad 本身上,我使用了 phonegap 的 SQLITE 语法,它非常适合存储客户端数据。但关键是通过 json 将此数据库同步到中央存储库的数据库 - 而不是将 SQLite db 物理移动到 ipad。

于 2013-01-29T15:28:30.727 回答