关于iphone:关系的核心数据建模

Core Data modeling of relationships

我正在Core Data中为我的应用程序建模。我有一个名为\\'stats \\'的对象,该对象将具有与每个对象关联的\\'玩家\\',\\'团队\\'和\\\\游戏\\。一旦存储了这些统计信息对象,我想象可以通过这些属性(玩家,团队,游戏)中的任何一个或多个来查询它们。请参见下面的模型。

Core

问题1:将它们建模为\\'relationships \\'而不是\\'attributes \\'是否有意义。

问题2:检索时,我想使用对象形成NSPredicates,而不必跟踪每个玩家,团队或游戏的唯一ID名称。如果我将玩家,团队和游戏对象(而不是唯一的ID或名称)与每个实体一起存储,那么检索它们的最佳方法是什么。如果我想检索特定\\'team \\'(someTeamObject)的所有统计信息对象,还是需要通过ObjectID查询,是否可以进行以下工作?

1
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team == %@", someTeamObject];

谢谢


  • 如果我正确理解您的问题,是的,将这些模型建模为具有它们之间关系的独立对象是有意义的。当获取各种对象时,它将特别有帮助;例如,您可以获取与给定统计信息关联的单个玩家,或获取游戏的所有统计信息。这引出了您的第二个问题:

  • 请注意,您的关系有名称,而不是使用谓词。无需构建具有关联的NSPredicate的完整NSFetchRequest,只需调用相关的访问器方法即可。对于请求获取团队的所有Stat对象的请求,只需调用[team stats]并返回一个Stat对象的NSArray。