我正在尝试使用核心数据来代表体育联盟的日程安排。在我的模型中,我有一个名为Team的实体和一个名为Game的实体。每个团队都会有很多游戏。每个游戏都有两个团队,一个被确定为主队,另一个被确定为客队。
在我目前的方法中,我在游戏实体中定义了“homeTeam”和“awayTeam”关系。这些关系中的每一个都是一对,并将其目标设置为Team实体。我还在Team实体中定义了一个to-many“游戏”关系,其目的地设置为Game实体。
这种方法的问题在于我无法以任何适当的方式设置反向关系。这需要团队/游戏关系与Game / homeTeam和Game / awayTeam关系相反,而这是不允许的(据我所知)。我当然可以将它们定义为单向关系,但我开始收到Xcode警告,我不确定这是一件好事。
我还考虑从Game实体中移除awayTeam和homeTeam关系,并将其替换为团队关系。这种关系对于Team来说是多对多的,最小值和最大值为2.但是,这种方法不允许我区分主队和客队,我将需要在我的应用中做
我很欣赏任何有关在CoreData中表示这种关系的最佳方式的建议。毫无疑问,我自己使用自己的数据库层来实现这一点,但我宁愿依赖CoreData而不是在这里提出一个自行开发的解决方案。
答案 0 :(得分:1)
我将如何做到这一点:
Game
有两个一对一的关系,homeTeam
和guestTeam
。
Team
有两个一对多关系,homeGames
和outGames
。 homeGames
的倒数为homeTeam
,outGames
的倒数为guestTeam
。
有道理吗?