核心数据中的嵌套问题

Posted

技术标签:

【中文标题】核心数据中的嵌套问题【英文标题】:Nesting Issue In Core Data 【发布时间】:2014-01-25 12:57:56 【问题描述】:

我创建了一个数据库,我必须在其中存储各种类别的联系人。当我必须在以下类别中创建子类别时,问题就出现了:-

类别-> 子类别-> 联系人

但类别也可以有联系人,如

类别 -> 联系人

子类别也可以有联系人。我认为将使用嵌套在核心数据中。我怎样才能达到这种关系?如何将子类别保存到类别中,即使它们属于同一实体?

我在这里附上了我的核心数据实体关系模型:-

【问题讨论】:

【参考方案1】:

在 CoreDate 中创建“自我”引用关系没有问题。 换句话说,一个实体可能有自己的关系。

CategorySubCategory 之间的唯一区别是 parent 实体的存在。 因此无需为该部分定义新实体。

您可以简单地定义一个关系:

Category.parent 类型为 Category(在这种情况下是一对一)

和一个相反的关系:

Category.subCategories 类型为 NSSet(在本例中为对多),包含 Category 对象。

您可以在界面构建器中进行所有设置。

现在,由于 CategoryContact 有关系,所以所有“子类别”都将具有这种关系。

如果您希望您的“子类别”具有其他属性,只需创建一个新实体并使其继承自您的 Category 实体(保留我描述的上述设置)。 并向其添加新属性。

【讨论】:

所以你的意思是我从 Category 本身创建到同一个实体 Category 的关系?

以上是关于核心数据中的嵌套问题的主要内容,如果未能解决你的问题,请参考以下文章

核心数据,嵌套列表

使用嵌套在向量中的向量转储的分段故障核心

将 JSON 嵌套到核心数据和 ObjectForKey 错误

核心数据:观察嵌套属性

嵌套核心数据获取

嵌套 UICollectionViews - 我应该如何处理来自核心数据的数据?