我的核心数据模型在实体Athlete
和Event
之间以及从Event
到Stats
之间存在一对多的关系我有一对一一个关系。基本上,我的模型看起来像Athlete <<----->Events<------->Stats
因此,一个运动员可以有不明数量的事件,在这些事件中,运动员可以为每个事件提供一组统计数据。我的问题是如何获取特定运动员内某一事件的具体统计数据。我的代码可以很好地添加运动员,然后为每个运动员制作某些事件,但是我无法访问Stats
中与特定运动员中的特定事件相关的对象。我该如何处理?
答案 0 :(得分:0)
恕我直言,您的数据模型不正确。您在文本中描述的内容应该如下所示(我也删除了您实体的混淆复数形式):
Athlete (stats) <---------->> (athlete) Stats
Stats (event) <<----------> (stats) Event
这里要理解的关键是统计数据是某种&#34;加入表&#34;将运动员与活动联系起来并储存&#34;副产品&#34;这种关系。如果您不想存储任何其他数据(如统计数据),那么您建议的多对多关系将是合适的。
让所有运动员参加活动:
[event.stats valueForKeyPath:@"athlete"]
让运动员参加的所有活动:
[athlete.stats valueForKeyPath:@"event"];
获取特定赛事的运动员统计数据:
[[athlete.stats filteredSetUsingPredicate:
[NSPredicate predicateWithFormat:@"event = %@", event]] anyObject];