核心数据中的父实体和关系

Posted

技术标签:

【中文标题】核心数据中的父实体和关系【英文标题】:Parent Entity and Relationship in Core Data 【发布时间】:2010-10-13 21:10:03 【问题描述】:

我正在学习 Core Data,所以我对以下内容感到困惑。

我需要知道这些关系在继承的场景中是如何工作的。

我有一个包含 Entities Zoo、Animal、Dog、Lion 的数据模型。

Dog 和 Lion 将 Animal 作为父实体。

现在动物园与动物有一对多的关系。

我想知道 Zoo 是否需要与动物建立一对多关系,还是需要与 Dog 和 Lion 建立一对多关系。在这种情况下继承是否有效。就像将来如果我添加 Tiger 一样,我是否需要在 Zoo 关系中添加它,或者一旦我从 Animal 继承 Tiger,它就可以正常工作。

【问题讨论】:

【参考方案1】:

只要你的子实体继承自 Animal 实体,它们也会继承 Animal 父实体与 Zoo 的关系。这就像 OOP 中的类继承,子类自动从其超类继承变量、方法等。

所以你需要做的就是在你的数据模型中声明 Zoo 和 Animal 之间的关系,并且你添加的任何扩展 Animal 的新实体都将与 Zoo 具有相同的关系——不需要做额外的工作来确保这一点.

有关详细信息,请参阅 Apple 核心数据编程指南的 Managed Object Models section。

【讨论】:

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

核心数据模型级联删除和父实体

与核心数据的关系错误

核心数据父实体

核心数据:有没有办法使用隐含关系而不是真实关系来有效地查询模型?

将子实体附加到核心数据 iOS Swift 中的实体

核心数据:如何删除关系中的实体