我的核心数据模型在实体Athlete和Event之间有一对多的关系,从Event到Stats,我有一对一的关系。基本上,我的模型看起来像Athlete <<----->Events<------->Stats,因此,一个运动员可以有一个未知数量的事件,在这些事件中,运动员可以对每个事件有一组统计数据。我的问题是,我如何获取特定项目的特定统计数据,在特定的运动员。我的代码可以很好地添加运动员,然后为每个运动员创建特定的事件,但我在访问Stats中与特定运动员的特定事件相关的对象时遇到了困难。我该怎么处理这个?
发布于 2014-07-22 09:20:35
IMHO,你的数据模型不正确。您在文本中所描述的应该是这样的(我也正在删除您的实体中令人困惑的复数形式):
Athlete (stats) <---------->> (athlete) Stats
Stats (event) <<----------> (stats) Event这里要理解的关键是,统计数据是某种“加入表”,它将运动员与项目联系起来,并存储这种关系的“副产品”。如果您不想存储任何额外的数据(如统计数据),您建议的多到多的关系将是合适的。
为了让所有运动员参加一项赛事:
[event.stats valueForKeyPath:@"athlete"]为了使运动员参加的所有活动:
[athlete.stats valueForKeyPath:@"event"];要获得某一特定项目运动员的统计数据:
[[athlete.stats filteredSetUsingPredicate:
[NSPredicate predicateWithFormat:@"event = %@", event]] anyObject];https://stackoverflow.com/questions/24875935
复制相似问题