Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 核心数据指南_Iphone_Database_Performance_Core Data - Fatal编程技术网

Iphone 核心数据指南

Iphone 核心数据指南,iphone,database,performance,core-data,Iphone,Database,Performance,Core Data,因此,我有一个问题,我正试图解决-我想知道是否有人可以评论/帮助我的方法。问题是,我已经部分解决了,但剩下的我不太确定 交易如下: 我有一个相当大的数据库在线,我想在应用程序的第一次启动加载。之后,我只会加载它,如果新版本存在 我使用xml解析器解析数据,并将所有数据输入到我的数据模型中。该数据库由数千种产品组成,所有产品都由各种属性描述 无论如何,我很容易将数千种产品保存在数据库中,然后根据需要检索数据 我有一个问题,如何分类,以及如何保存类别数据。有一个主要类别,即高保真,它有几个子类别——

因此,我有一个问题,我正试图解决-我想知道是否有人可以评论/帮助我的方法。问题是,我已经部分解决了,但剩下的我不太确定

交易如下:

我有一个相当大的数据库在线,我想在应用程序的第一次启动加载。之后,我只会加载它,如果新版本存在

我使用xml解析器解析数据,并将所有数据输入到我的数据模型中。该数据库由数千种产品组成,所有产品都由各种属性描述

无论如何,我很容易将数千种产品保存在数据库中,然后根据需要检索数据

我有一个问题,如何分类,以及如何保存类别数据。有一个主要类别,即高保真,它有几个子类别——比如说“立体声”、“调谐器”、“电话”等等

如何最好地保存这些信息,类别a有15个子类别,每个类别又有30个产品,同时确保性能并将处理时间保持在最低限度。我不想在每次打开新的表视图时检查所有2000个产品是否需要在某个表视图中显示它们


感谢您提供有关apporach的任何提示。

我认为您可以通过使用由三个实体组成的核心数据模型来解决此问题:产品、类别和子类别

产品具有与目标类别的关系类别和与目标子类别的关系子类别

类别具有与目标产品的对多关系产品和与目标子类别的对多关系子类别

子类别具有与目标产品的一对多关系产品和与目标类别的一个关系类别

定义这些关系时,请记住也要指定反向关系


现在,只需加载相关类别并访问products属性,即可获得属于特定类别的所有产品的列表。还可以使用NSFetchRequest for Product,并使用谓词指定所需的类别。关于性能和内存需求,我不能说哪个是最好的,所以你只需要测试哪种方法最有效。

你需要两个实体:
产品
类别

Category
与目标实体
Category
有一个称为
子类别的多对多关系。反向关系可以称为
parentCategory
<代码>类别
还有一种称为
产品
的多对多关系<代码>产品将具有称为<代码>类别(或<代码>类别,如果一个产品可以属于多个类别)

现在,您可以通过检查其
products
属性来获取给定类别的所有产品。如果要将所有产品包括在子类别中,可以使用如下谓词执行提取请求:

[NSPredicate predicateWithFormat:@"category == %@ OR category IN %@", category, category.subcategories];

这两个答案似乎都是足够的,我会检查他们和反馈后!到目前为止谢谢你。事实上,我似乎仍然有这个问题。我如何在db中插入一些子类别,并告诉coredate,超级类别A有子类别A.1、A.2、A.3等等……实际上,我似乎仍然对此有问题。我如何将一些子类别插入数据库并告诉coredate,超级类别A有子类别A.1、A.2、A.3等等。。。。