对于我正在研究的回合制多人游戏,我定义了一个游戏实体来存储游戏信息。每个游戏都是两个注册用户之间的玩家。由于我已经有一个用户实体,我决定使用关系将用户链接到游戏。我从游戏到用户实体定义了 player1 和 player2 关系,因为我想明确指定每个用户到两个玩家位置中的一个(而不是玩家属于一组的多人玩家关系)。我还从用户实体与游戏实体建立了关系游戏,以存储用户当前参与的所有游戏。
我不能以这种方式设置反向关系,因为那时我的游戏关系必须与 player1 或 player2 相反。但Xcode抱怨缺乏逆,所以我想知道我是否应该以另一种方式建立我的关系模型?以下是Xcode警告:
一致性错误:User.games没有反转;这是一个高级设置(对象不能在特定关系的多个目的地中)
和
配置错误的属性:Game.player1应该有反向
答案 0 :(得分:2)
您可以通过定义两个反向关系来解决这个问题:games1
与player1
相反,games2
与player2
相反。< / p>
通常建议定义反向关系,因为它有助于保持完整性
对象图。例如,如果删除用户并删除反向关系
规则设置为“Nullify”,然后将所有相关游戏中的player1
/ player2
条目设置为NULL
并且不指向不存在的用户对象。