swift CoreData和中间体

jk9hmnmh  于 2023-06-04  发布在  Swift
关注(0)|答案(1)|浏览(183)

我对如何在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

我的应用程序能够计算玩家在当前游戏中玩了多少游戏,并将其存储在Player对象上,但我不知道将游戏时间保存到相应的Game对象的长期解决方案-无论是直接在对象上还是通过中间体。
我看过一些people do use intermediates。但是我也读到过使用SQL实践不是考虑对象图的正确方法。所以,我只是想知道应该如何建模这样的东西。

kx7yvsdv

kx7yvsdv1#

使用中间实体来建模多对多关系是完全合法的。事实上,在您想要存储有关关系本身的信息的情况下,这是必要的。
在Core Data Programming Guide中有一个这样的例子,在标题为“Modeling a relationship based on its semantics”的章节中(不管那是什么意思)。他们的例子是一个自反关系,但这个论点适用于任何多-多关系。

相关问题