我如何在Core Data中建模这种多对多的关系?

时间:2011-07-06 23:52:31

标签: database-design core-data model many-to-many

我有这个核心数据关系:

Deck <<-->> Cards <-->> Card Defaults

但是:Deck <-->> Card Defaults

我如何对此进行建模,以便我能够创建一个包含许多卡片的卡片组,每张卡片只有一个不同的默认卡片?我不确定Core Data如何将每个卡片只有一个默认值相关联的事实联系起来。仅从Deck <<-->> Cards <-->> Card Defaults开始,似乎Core Data会认为牌组中的每张牌都有许多默认值。

但是,如果我Cards <--> Card Default,那么我将无法为不同的套牌设置不同的卡默认值。

这里有什么我想念的吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

根据经验,当您发现自己创造了以下情况时:

甲板及LT;&LT; - &GT;&GT;卡 卡和LT; - &GT;&GT;默认 甲板&LT; - &GT;&GT;默认

...这表明您的模型逻辑上需要两个其他实体之间的链接实体。

我认为你需要:

Deck<-->>Default<<-->Card

这使用Default对象将每个Card与特定Deck相关联,但仅通过适用于该Deck的Default。

不要害怕制作多跳关系路径。 Core Data处理非常长的密钥路径和复杂模型的能力是它的强大功能。

答案 1 :(得分:0)

您需要卡与卡默认值之间的一对一。您还需要Deck和Card Default之间的一对一。这样,Card Default与Deck和Card相关联。