CoreData和中间人

时间:2017-03-08 16:36:44

标签: ios swift core-data

我对如何在CoreData中对此进行建模感到困惑?这是一个相当简单的概念,我希望能够跟踪玩家在特定游戏中玩了多长时间。所以我有以下对象(简化为简洁):

Player
 - name
 - currentGamePlayedTime
 (1:1 relationship to Team)

Team
 - name
 (1:1 relationship with Player)
 (1:Many relationship with Game

 Game
  - date
  (Many:1 relationship with Team)

我希望能够回顾玩家在特定游戏中的上场时间,或者看到整个团队在游戏中的上场时间。但我不确定如何建模。使用SQL方法我有一个中间表(如下所示),并且有15个左右的条目,每个参与游戏的玩家和他们玩的相应时间。

GameRecord
 - GameID
 - PlayerID
 - TimePlayed

我的应用程序可以锻炼玩家在当前游戏中玩了多少并将其存储在玩家对象上,但我不知道将游戏时间保存到相应游戏对象的长期解决方案 - 这是直接在对象上还是通过中间人。

我已经看到了一些people do use intermediates。但我也读过,使用SQL实践并不是思考对象图的写法。所以只是想知道应该如何建模这样的东西。

1 个答案:

答案 0 :(得分:1)

使用中间实体来模拟许多关系是完全合法的。实际上,在您的情况下,您需要存储关于关系本身的信息是必要的。

Core Data Programming Guide中,在标题为“基于其语义建立关系建模”一节(无论这意味着什么)中有一个例子。他们的例子是反身关系,但这个论点适用于任何多方关系。