核心数据属性取决于关系

时间:2013-05-01 22:40:16

标签: ios core-data database-design entity-relationship

我正在尝试将一个有序的数组对象添加到我的CoreData设置中,我知道你不能这样做,因为NSSet是无序的,我知道实现这一点的最简单方法是向内部的实体添加一个属性。设置一旦你拿到它就可以用来订购它。然而,这是我遇到设置问题的地方,它有点复杂:

我有权限:CricketPlayerCricketTeam ...用户可以使用有序数组CricketTeam创建一个CricketPlayer's对象,该数组代表击球阵容。当我下次检索此列表时,我希望在创建团队时以与创建团队相同的顺序向用户呈现阵容...唯一的问题是在我的应用程序中 - 在现实生活中也是如此! - 玩家可以为多个团队玩游戏,所以如果我在CricketPlayer上设置一个属性,请说:batterNumber虽然这样可以让我重新创建击球阵容,如果我再创建另一个团队同样的球员并且在不同的位置击败他我将破坏原始球队的击球阵容!

我要做的是创建一个'伪关系',它不是与另一个CoreData实体的关系,而是一个实体上的属性,它取决于它在哪个实体中被使用...所以在我的情况下我想要一个CricketPlayer实体上的属性,该属性代表玩家在特定CricketTeam中击打数字,如果这有任何意义的话!

1 个答案:

答案 0 :(得分:0)

您需要更多实体。我假设一名球员可以不止一次为一支球队效力,即超过1场比赛,在击球阵容中的顺序不同。因此,您需要一个链接CricketTeams的匹配实体,并记录该特定比赛的球队的击球顺序。

<强>匹配 HomeTeamID AwayTeamID

<强>团队 TeamID TeamName

<强>播放器 PlayerID PlayerName

<强> PlayerTeam PlayerID TeamID

<强> MatchBattingOrder MatchID PlayerID TeamID BattingOrder

这非常简单!这是一个数据建模问题