我对Objective C和Core Data相当陌生,并且设计一个案例,让玩家一对一组队并且有多个匹配最终得到特定结果。
使用MySQL,我会有一个播放器表(播放器主键,名称)和一个匹配表(播放器A外键,播放器B外键,结果)。
现在我如何使用Core Data执行此操作?我可以使用关系轻松地将玩家实体绑定到匹配实体。但是我如何为第二个玩家参考反演方向建模。在匹配实体中?
播放器
名称:属性
匹配:关系匹配
匹配
结果:属性
PlayerA:与玩家的关系(< - Inverse to Player.Match)
PlayerB:与玩家的关系(< - 反向????)
如果有人可以就此提出一个想法,那会很棒!
谢谢, 史蒂维。
答案 0 :(得分:0)
如果您的比赛有特定的主场球员和客场球员,那么您将使用:
player.homeMatches <---->> match.homePlayer
player.awayMatches <---->> match.awayPlayer
您可能仍然拥有:
player.matches
如果您需要按所有匹配进行搜索,并且您不希望将搜索字段与您一起进行搜索。或者你可以提供方法/ readonly-property“allMatches”:
- (NSSet *)allMatches
{
return [[NSMutableSet setWithSet:self.homeMatches] unionSet:self.awayMatches];
}
在运行时给出值。当然,您无法使用fetch谓词搜索此“allMatches”属性,但可以在运行时对其进行排序和访问。