2

对于我正在开发的回合制多人游戏,我定义了一个游戏实体来存储游戏信息。每个游戏都是两个注册用户之间的玩家。由于我已经有一个用户实体,我决定使用关系将用户链接到游戏。我定义了从GameUser实体的player1player2关系,因为我想显式地将每个用户分配给两个玩家插槽之一(而不是玩家是一组玩家的多玩家关系)。我也有从用户实体到游戏的关系游戏实体来存储用户当前参与的所有游戏。

我不能以这种方式设置反向关系,因为那样我的游戏关系必须与player1player2 反向。但是 Xcode 抱怨缺乏逆,所以我想知道我是否应该以另一种方式建模我的关系?以下是 Xcode 警告:

一致性错误:User.games 没有逆;这是一个高级设置(没有对象可以在特定关系的多个目标中)

错误配置的属性:Game.player1 应该有一个逆

4

1 回答 1

2

您可以通过定义两个反比关系来解决这个问题:games1与 成反比player1games2与 成反比player2

通常建议定义反向关系,因为它有助于保持对象图的完整性。例如,如果一个用户被删除并且反向关系删除规则设置为“Nullify”,那么所有相关游戏中的player1/player2条目都设置为NULL,并且不指向不存在的用户对象。

于 2013-08-13T20:34:31.137 回答