ios - CoreData 和中间体

标签 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

我的应用程序能够计算出玩家在当前游戏中玩了多少游戏并将其存储在当前的 Player 对象中,但我不知道将播放时间保存到相应的 Game 对象的长期解决方案 - 是否直接在物体上或通过中间体。

我见过一些 people do use intermediates .但我还读到,使用 SQL 实践并不是考虑对象图的编写方式。所以只是想知道应该如何为这样的东西建模。

最佳答案

使用中间实体来模拟多对多关系是完全合法的。事实上,在像您这样的情况下,您需要存储有关关系本身的信息。

Core Data Programming Guide 中有一个这样的例子,在标题为“基于语义建模关系”的部分中(无论是什么意思)。他们的示例是自反关系,但该论点适用于任何多对多关系。

关于ios - CoreData 和中间体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42676886/

相关文章:

ios - 将一个项目插入集合中会重新加载 collectionView 中的每个项目

ios - 核心数据导致 endUpdates 异常

iOS - 计算 map 上某个区域的面积和周长

ios - 如何在每个需要登录的 View Controller 上检查用户身份验证?

ios - 将字符串制作成 SKNode

ios - 无法理解 swift 中的继承行为?

ios - 从后台线程更新 UIProgressView 进度

ios - fatal error : Array index out of range with Parse. com

ios - Xcode 7.1 (7B91b) 您无权上传到 App Store

ios - 在 Objective C 中 @testable import 的替代方案是什么