我正在使用Core Data对我的应用进行建模。我有一个名为'stats'的对象,它有一个'玩家',一个'团队'和一个与每个对象相关的'游戏'。一旦存储了这些统计对象,我想通过这些属性中的任何一个或多个(玩家,团队,游戏)来查询它们。见下面的模型。
问题1:将这些模型建模为“关系”而不是“属性”是否有意义。
问题2:检索时我想使用对象形成我的NSPredicates,而不必跟踪每个玩家,团队或游戏的唯一ID名称。如果我将玩家,团队和游戏对象(而不是唯一的ID或名称)与每个实体存储在一起,那么检索它们的最佳方法是什么。如果我想检索特定“团队”(someTeamObject)的所有统计信息对象,或者我是否需要按ObjectID查询,以下工作是否会起作用?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team == %@", someTeamObject];
由于
答案 0 :(得分:4)
如果我理解你的问题是对的,是的,将它们建模为具有它们之间关系的单独对象是有意义的。在获取各种物体时尤其有用;例如,你可以获得与给定统计数据相关联的单个玩家,或获得游戏的所有统计数据。这导致了你的第二个问题:
请注意您的人际关系有名称,而不是使用谓词;您可以只调用相关的访问器方法,而不是使用关联的NSPredicate构建完整的NSFetchRequest。对于获取团队的所有Stat对象的请求,只需调用[team stats]
即可获得Stat对象的NSArray。