我想为我的iphone应用程序提供设备上的数据库。它涉及数据,这些数据来自由200,000件事物及其定义组成的字典。它只与出现的文本类型数据有关。我的问题:
1- SQLite是否拥有所有这些数据?
2-当客户端下载我的应用程序时,他/她也将在他/她的设备中安装数据库。 app store是否允许我更新我的应用程序的数据库并上传我的新版本? (顺便说一下,我不太了解这些问题)
3-任何下载我的应用程序的客户都可以破解并获取我的数据库吗?有没有预防方法? SQLite对这些是否具有足够的弹性?
答案 0 :(得分:2)
1- SQLite是否拥有所有这些数据?
是的,SQLite可以处理这么多数据。
2-当客户端下载我的应用时, 他/她也将拥有数据库 他/她的设备。 app store是否允许 我更新我的应用程序的数据库并上传我的 新版本? (我不知道这些 顺便提一下问题)
一般方法是将SQLite数据库存储在应用程序包中,然后在首次运行应用程序时将数据库复制到设备上的应用程序文档目录中。在对应用程序进行后续更新时,应检查文档目录中的数据库是否为同一版本,并在必要时进行更新。有关详细信息,请参阅现有的Run NSBundle from the documents folder问题/答案。
3-任何下载的客户都可以 我的应用程序,破解并获取我的数据库? 有没有预防方法?是 SQLite对这些有足够的弹性吗?
打开一个应用程序是相当简单的(毕竟部署包只是一个zip文件),所以是的,可以获得对数据库数据的访问权限。不幸的是,我并没有简单的方法来解决这个问题。 (我可以假设您在第一次运行应用程序时从服务器下载数据,但它仍然可以在越狱设备上访问。)
有时候,你只需要咬紧牙关,接受你的数据将被扯掉的事实。
答案 1 :(得分:1)
1)sqllite绝对可以容纳这么多数据。
2)您可以在应用中添加刷新数据库的选项。这可用于将本地数据库与服务器副本同步。更新的数据库也可以与新版本的应用程序一起添加。
3)您可以使用SQLCipher加密本地数据库,以保护您的应用程序数据库免受攻击。