我正在 Core Data 中对我的应用程序进行建模。我有一个名为“统计”的对象,该对象将具有与每个对象关联的“玩家”、“团队”和“游戏”。一旦存储了这些统计对象,我想象通过这些属性(玩家、团队、游戏)中的任何一个或多个来查询它们。请参阅下面的型号。
问题 1:将这些建模为“关系”而不是“属性”是否有意义。
问题 2:检索时,我想使用对象形成 NSPredicates,而不必跟踪每个玩家、团队或游戏的唯一 ID 名称。如果我将玩家、团队和游戏对象(而不是唯一的 ID 或名称)与每个实体一起存储,那么检索它们的最佳方法是什么。如果我想检索特定“团队”(someTeamObject)的所有统计对象,或者我需要按 ObjectID 查询,以下操作是否有效?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team == %@", someTeamObject];
谢谢
最佳答案
如果我理解你的问题,是的,将它们建模为具有它们之间关系的单独对象是有意义的。它在获取各种对象时尤其有帮助;例如,您可以获取与给定统计数据关联的单个玩家,或者获取游戏的所有统计数据。这就引出了你的第二个问题:
请注意,您的关系有名称,而不是使用谓词;您可以只调用相关的访问器方法,而不是构建带有关联 NSPredicate 的完整 NSFetchRequest。对于获取团队的所有 Stat 对象的请求,您只需调用
[team stats]
即可返回一个 Stat 对象的 NSArray。
关于iphone - 关系的核心数据建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149092/