我正在尝试学习一些核心数据,而且我对数据库(我知道核心数据不是,它是'对象图管理器')的知识有限,所以我有点需要一些帮助弄清楚我需要存储什么,以及在哪里。我想在我的模型中创建三个实体:
Team
Player
GameResult
团队具有属性teamName
(字符串),但团队(在这种情况下)也应该有4个与之关联的玩家。这是我理解的难点:如何在Team
实体中添加/表示玩家(对象)作为属性?
Player
实体目前只有name
属性作为字符串,最好是唯一ID(?) - 以便能够在以后跟踪个别结果。
但GameResult
还有一些属性:
我认为homeTeam和awayTeam都应该是实体类型Team
的实例,我也不明白我的代表性。我猜我也需要建立一些关系:一个团队可以有很多玩家(在我的情况下是4个),玩家可以属于很多团队(不过同一个游戏中的homeTeam和awayTeam)。 / p>
我非常感谢有关如何设置此模型的一些想法和指导。
编辑:我应该有一个Game
的实体。我是否应该使用此而不是GameResult
并将gameResult设为Game
的属性,还是应该将GameResult
作为实体?你们有什么感想?正如我之前提到的:我对数据库的知识非常有限(一般而言)......每个人都可以看到。
答案 0 :(得分:0)
如何在Team实体中添加/表示玩家(对象)作为属性?
你想在团队和玩家之间建立“一对多”的关系。当您创建one-may关系时,您的模型将自动在您的托管对象中放置一个NSSet,其中包含团队中的玩家列表。
播放器实体现在只有一个名字作为字符串的属性,最好是一个唯一的ID(?) - 以便能够在以后跟踪个别结果。
我知道这听起来很奇怪,但不要担心唯一身份证。核心数据将为您处理,您永远不会错过它。你必须信仰这个,直到你看到它在行动;)
我认为homeTeam和awayTeam都应该是一个实体类型Team的实例,我也不明白我的代表方式。
我可能会想到Team实体中的一个属性表示“Home or Away”。但如果您不喜欢那个,还有其他选择。我只想到只有两个可能值的简单事物,这可能是件容易的事。没有什么可以防止对两者使用相同的实体。
编辑:我应该有一个游戏实体。我应该有这个而不是GameResultand让gameResult成为Gameor的一个属性,我还应该让GameResultas成为一个实体吗?你们有什么感想?正如我之前提到的:我对数据库的知识非常有限(一般而言)......每个人都可以看到。
不确定会有什么不同。在我看来,就像一个游戏实体,其中包含“游戏结果”的任何属性都是有意义的。游戏总是有结果,结果总是游戏。所以,我不明白为什么你们两个都需要。
我不想说你没有一般的数据库知识会更好,但你差不多。我不得不忘记我所知道的关于SQL Server能够掌握核心数据的所有内容。
我能说的最好的事情是,一旦“灯光亮起”,它就会很简单,对你来说也很有意义。我最大的问题是不得不忘记我对关系数据库的了解。
我可以说的主要事情是记住所有内容都与托管对象有关。您将关系构建到模型中,从那时起,您将处理相关实体的受管对象的NSSets。
说实话,理解起来太有意义了;)
注意:您可以做的最好的事情之一就是修改设置模型,然后生成实体类。创建NSManaged Object子类。然后研究这些类并理解它们中的每个关系集。这至少使我的事情变得清晰。
GLTY。