核心数据中的关系建模

时间:2009-10-03 21:26:42

标签: objective-c core-data datamodel

我对Objective C和Core Data相当陌生,并且设计一个案例,让玩家一对一组队并且有多个匹配最终得到特定结果。

使用MySQL,我会有一个播放器表(播放器主键,名称)和一个匹配表(播放器A外键,播放器B外键,结果)。

现在我如何使用Core Data执行此操作?我可以使用关系轻松地将玩家实体绑定到匹配实体。但是我如何为第二个玩家参考反演方向建模。在匹配实体中?

播放器
名称:属性
匹配:关系匹配

匹配
结果:属性 PlayerA:与玩家的关系(< - Inverse to Player.Match)
PlayerB:与玩家的关系(< - 反向????)

如果有人可以就此提出一个想法,那会很棒!

谢谢,  史蒂维。

1 个答案:

答案 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”属性,但可以在运行时对其进行排序和访问。