我一直在学习CoreData以在我的应用程序中使用它,并且在生成sql模型时遇到一些问题。
我想有两个实体(至少)。一个是Items
,另一个是History
。
逻辑:每个历史实体都应该没有或多个Items
。 Items
不应该相互重复 - 独特。
如何在Xcode中对此进行建模?我是否需要像" History2Items"?
这样的链接实体我一直在努力解决这个问题,但我可以找到合适的解决方案。
任何帮助?
更新
我制作了这个模型:
为了获取数据我使用了预取关系:
[request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"item"]];
这就是我如何获得每个历史的项目:
History *history = [self.historyArray objectAtIndex:indexPath.row]; NSMutableArray *items = [NSMutableArray arrayWithArray:[history.item allObjects]];
只需循环使用items数组即可获取每个Item。
这很容易。感谢@Ashley Mills。
答案 0 :(得分:2)
创建Item
和History
个实体,并按如下方式连接它们:
如果Item
可以属于多个History
,请将关系从一对多更改为多对多关系。
如果您打算按索引为历史记录订购项目,则只需要一个链接实体,因为每个项目可能具有给定历史记录的不同索引。例如,如果您按日期订购商品,则不需要链接实体。