我一直在为我的应用程序开发核心数据模型。我相信我的最终模型是正确的,但有一些事情我有点困惑。这就是我想做的事情:
我所做的是:
从我所读的in this guide开始,似乎我不需要一个单独的实体来回答问题。我似乎可以在Name实体下创建这两个关系。所以我不确定我是否应该在Name实体下创建问答关系,或者为问题和答案分别设置实体。
答案 0 :(得分:1)
如果您的第一个实体是一堆问题,您应该将其称为Deck
而不是Name
您的第二个实体名称应该是单数,因为每个实体代表一个Card
对象。
由于每张卡片都有一个问题和答案,因此您无需使用单独的Question
和Answer
实体对其进行建模。只需存储每张卡的答案及其问题。
至于为什么将问题和答案存储在一个单独的实体中,这是建立一对多关系的唯一有效方式,其中每个牌组都有许多牌(或问题)。
否则,没有直观的方法来表示甲板本身内的(固定的或)可变数量的问题和答案属性。在最坏的情况下,您的Deck
最终会看起来像:
extension Deck {
@NSManaged var name: String
@NSManaged var question1: String
@NSManaged var answer1: String
@NSManaged var question2: String
@NSManaged var answer2: String
@NSManaged var question3: String
@NSManaged var answer3: String
@NSManaged var question4: String
@NSManaged var answer4: String
...
}