iPhone/Sqlite - 如何仅从服务器获取更改的数据?

Posted

技术标签:

【中文标题】iPhone/Sqlite - 如何仅从服务器获取更改的数据?【英文标题】:iPhone/Sqlite - how to get only changed data from server? 【发布时间】:2010-01-15 09:33:31 【问题描述】:

我正在服务器上生成一个相当大的 sqlite 文件(大约 30'000 个条目,大约 3mb 大)并且想在我的 iPhone 应用程序中使用该数据。

服务器上的 sqlite 文件每小时生成一次;有些数据几乎每次都在变化,有些数据很少变化。

有没有办法只将更改的数据发送到 iPhone,因为我不想让用户每次使用应用程序时加载 3mb。

我该怎么做才能只将数据发送给自上次请求后发生更改的客户?有什么想法吗?

【问题讨论】:

【参考方案1】:

为每个请求数据的 iPhone 保留一个时间戳,然后使用它来确定自 iPhone 上次请求以来哪些行发生了变化。

或者,iPhone 可以在下次请求时发送上次请求数据的时间戳。

您还需要为数据库中的每一行存储一个最后更新的时间戳,这样您就可以确定自 iPhone 上次询问以来哪些时间戳发生了变化。

【讨论】:

谢谢理查德,这是一个很好的起点。所以在我的应用程序包中,我提供了数据库的起点,我总是知道服务器上哪些数据发生了变化。但是然后我必须使用 sqlite 文件(一个在服务器上,一个在客户端上) - 用服务器上的必要行更新 iphone-sqlite-db 的最佳方法是什么? 一种方法是在服务器上生成一个包含更改/更新数据的 CSV 文件。然后在 iphone 上读取这个文件并将每一行插入到 iphone 的数据库中。

以上是关于iPhone/Sqlite - 如何仅从服务器获取更改的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅从 ResultSet 中获取第一行

如何仅从 postgres 获取特定键的 jsonb?

如何仅从 laravel FormRequest 中获取经过验证的数据?

如何仅从 JSON 数据中获取最后 10 个对象

如何仅从日期时间列中获取日期? [复制]

如何仅从父标签而不是从子标签获取文本