我对如何在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实践不是考虑对象图的正确方法。所以,我只是想知道应该如何建模这样的东西。
1条答案
按热度按时间kx7yvsdv1#
使用中间实体来建模多对多关系是完全合法的。事实上,在您想要存储有关关系本身的信息的情况下,这是必要的。
在Core Data Programming Guide中有一个这样的例子,在标题为“Modeling a relationship based on its semantics”的章节中(不管那是什么意思)。他们的例子是一个自反关系,但这个论点适用于任何多-多关系。