在不下载整个数据库的情况下将数据库更新分发到iPhone应用程序

时间:2010-11-16 16:56:48

标签: iphone sqlite

我有一个产品数据库,我想将其分发到iphone用户应用程序。它的数据存储在SqlLite数据库中。

我想问的是:如果我在数据库中更新一个产品的价格,在iphone应用程序中更新数据库用户副本的最佳方法是什么?我不想将整个数据库时间发送给iphone用户。

如果我只发送更新的产品,一段时间后每个iphone上的每个数据库都会有所不同。 我很困惑。

任何想法都将受到赞赏。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可以为数据库使用全局修订版ID。数据库中的每个项目还包括一个字段,用于跟踪上次更新的修订。这很像颠覆的方式。

每当更新中央数据库中的一个或多个字段时,您将增加全局修订号以及每个更新条目的修订号。 然后,您的iPhone数据库副本必须跟踪自己的修订版本。每当它连接到主数据库时,它就可以请求自其修改以来所做的更改。

EG。如果主数据库处于修订版1234且iPhone处于修订版1222,则会。然后接收对应于1223,1224等的更新

答案 1 :(得分:0)

由于iPhone设计用于连接互联网,为什么不让iPhone用户应用程序每次打开时,或每周或类似地从互联网(您的网站)下载更新的价目表? / p>

<强>更新

如果您的数据库很大,您可以使用版本号跟踪数据库的更新,并以SQL语句的形式为数据库创建“补丁”,以便从一个版本的数据库移动到下一个版本。

当用户应用程序连接到您的网站时,它可以查找适当的补丁以更新到当前版本,然后下载它们。

这应该会减少下载的数据量,尤其是压缩补丁时(使用zip)。