大型数据库 – 在设备上显示数据的最佳方式?
我目前正在创build一个iOS应用程序,该应用程序连接到数据库,并asynchronous下载数据的JSON对象以显示在表格视图中。
就目前来看,这是一个好方法。 但是,当数据库开始变大时,这会造成很大的不便。 我在Objective-C方面非常熟练,但在数据库方面并不那么重要。 从服务器获取这些数据并将其保存在应用程序中的最佳方式是什么? 目前,我有一个自定义类对象存储JSON对象中的每个“对象”的数据。 然而,数据库将处理应用程序的许多其他方面,如邀请,login和用户详细信息。
核心数据是否会走? 即复制数据库(在一定程度上)并将其存储在本地,然后从那里访问。 正如我所说,我不太确定采取哪条路线,所以任何build议都会得到真正的赞赏。
核心位置是处理位置(卫星(和wifi)定位)。
我想你的意思是核心数据。 核心数据是一个graphics对象模型,它允许你操作数据作为对象。 您不要直接挖掘数据库,通过谓词(SQL中的where子句的种类)和操作对象来请求对象实例。
这表明,这一切都取决于什么是“大”的数据库。 如果真的很大,你可以考虑在本地拷贝一部分,并通过你的web服务询问服务器上剩余的部分。
另一个问题,你可以问自己是数据的数量永远不会改变,如果您的网站数据库和您的应用程序数据库需要同步(如果您的网站数据库一直在改变,那么它是愚蠢的复制它在你的应用程序完全和总是同步你的应用程序..)。
链接:
核心数据简介
核心数据和数据库之间的区别(cocoa爱)
编辑:
你可以问自己的问题是你的数据需要保存在哪里?
如果您的应用程序仅用于打印总共200个单元格中的20个单元格,那么我将为您的200个单元格进行总计下载。 第一次下载之后,其他单元格的负载将不会有任何延迟,尤其是在使用具有可重用单元格的表格视图单元格的情况下
在20个第一个单元和后面的20个单元之间可以接受几秒的延迟? 我认为你的问题没有真正的“好”答案,这取决于许多因素(你的应用程序的目的,可接受的负载时间,信息是否需要修改并保存回服务器或本地,什么样的客户,你的应用程序将如何处理单元格,如果你有本地数据库,它将完全独立于“母亲”数据库(如果没有,是什么样的同步)等等)
试着根据我所了解的需求来总结一些事情,我想说的是,如果您只需要检索信息并在不保存的情况下利用它(即使您可以实际上拥有允许您的服务要做到这一点),在本地拥有一个数据库是很好的,如果你需要你的应用程序在某些方面独立于你的服务器。
只有你有答案的关键,并根据你的需求和你的应用程序和你的客户的知识做出决定。
像JSON或SOAP之类的东西是将Web服务中的结构化数据转化为iPhone应用程序中的对象的方法。
用SQLite存储关系数据本身很容易。 这是一个体面的教程 。
通过编写一个数据层,将对数据库的调用抽象化,避免将SQL查询遍布在代码中不应该出现的地方,比如用户界面。