下载数据库到iOS设备的最佳方法



是的,在SO上有很多关于这个话题的问题,但是我找不到一个满意的答案。

我正在和一些人一起做一个小项目。这个想法是将一些数据添加到数据库中,这些数据稍后可以在应用程序中使用。数据库将只在设备上读取(select语句),并且永远不会被用户编辑。

两个家伙应该做数据库的输入。我做了一个网页,他们可以登录,并添加/更新/删除他们想要的数据。网页用php编写,数据用sqlite存储在数据库中。

应该可以在应用程序中进行"按类型搜索"。

数据库将每隔一段时间更新一次。当发生这种情况时,我想更新设备上的本地数据库,但只更新已更改的部分。这是首选的方法,但也可以下载完整的数据库。这取决于以后数据库的大小。

我需要一些指导,下一步该去哪里。一些重要问题:

    sqlite是数据库的最佳选择吗?我可以改变它为mysql没有太多的工作,如果这是首选。还是有其他更好的解决方案?
  1. 如何保存数据到设备,如何使用数据?有什么好的框架吗?我只需要在设备上做一些简单的选择语句。
  2. 我应该在我的解决方案中使用这些吗?
    • Core Data:我还不熟悉它,但使用它似乎要做很多工作。(?)
    • JSON/REST:我应该发送数据作为JSON/REST吗?我已经看到了RESTkit,但我还没有使用它。
  3. 还有什么我应该知道的吗?

. .这里最好的方法是什么?我一点也不确定下一步该做什么。如能提供一些解释和/或参考资料,将不胜感激。

看情况。如果数据集很大,我会选择CoreData。如果它很小,简单的NSArray/NSDictionary会更简单。至于传输,我会使用简单的PLIST或JSON。一切都取决于你的需求和你想在项目中投入的时间。

  1. 关于这个项目,我认为你是在谈论服务器数据库,如果我错了请纠正我。我更喜欢在服务器上使用MySQL,因为它比SQLite更健壮。

  2. 您可以直接在设备上使用SQLite或使用CoreData。在这两种方法中,设备上都有一个SQLite数据库。区别在于你访问它的方式。要直接访问SQLite,你可以使用SQLite C API (libsqlite3.0.dylib)。CoreData也非常好,但它需要更多的时间来学习比SQLite C API。

  3. 使用JSON与web服务通信是非常容易的。PHP有很好的JSON支持,在设备上你可以使用TouchJSON (https://github.com/TouchCode/TouchJSON)

  4. 我不知道。:)

希望能有所帮助。

1.  Is sqlite the best choice of database for this? I could change it to mysql without too much work, if that's preferred. Or is there another, better solution?

是Sqlite更好

1.  How do I save the data to the device, and how do I use it? Are there any good frameworks for this? I only need to do some simple select-statements on the device.

NSFileManager是你需要使用的,首先,你需要从服务器请求sqlite数据库,这将下载整个数据库到你在App

的文档文件夹中
1.  Should I use any of these in my solution?
•   Core Data: I'm not familiar with it yet, but it seems like it is a lot of work to use it. (?)

它在概念上有点宽泛,虽然它使用sqlite,并且您不需要将设备中的数据添加到数据库中,但这并不适合您。

•   JSON/REST: Should I send data as JSON/REST? I've seen the RESTkit, but I haven't used it.

您可以使用JSON下载数据。

1.  Is there anything else I should know about?

您在服务器中准备的sqlite数据库应该具有相同的表名和结构,以便您的设备查询可以执行,

相关内容

最新更新