如何创建合适的iOS Core Data数据库模型?

时间:2012-01-11 14:19:00

标签: ios database sqlite core-data model

我一直在学习CoreData以在我的应用程序中使用它,并且在生成sql模型时遇到一些问题。

我想有两个实体(至少)。一个是Items,另一个是History。 逻辑:每个历史实体都应该没有或多个ItemsItems不应该相互重复 - 独特。

如何在Xcode中对此进行建模?我是否需要像" History2Items"?

这样的链接实体

我一直在努力解决这个问题,但我可以找到合适的解决方案。

任何帮助?

更新

我制作了这个模型:

CoreData model

为了获取数据我使用了预取关系:

[request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"item"]];

这就是我如何获得每个历史的项目:

History *history = [self.historyArray objectAtIndex:indexPath.row];
NSMutableArray *items = [NSMutableArray arrayWithArray:[history.item allObjects]];

只需循环使用items数组即可获取每个Item。

这很容易。感谢@Ashley Mills。

1 个答案:

答案 0 :(得分:2)

创建ItemHistory个实体,并按如下方式连接它们:

enter image description here

如果Item可以属于多个History,请将关系从一对多更改为多对多关系。

如果您打算按索引为历史记录订购项目,则只需要一个链接实体,因为每个项目可能具有给定历史记录的不同索引。例如,如果您按日期订购商品,则不需要链接实体。