CoreData父、母子关系,一个CoreData子类可以和两个子类有相同的关系吗?

Posted

技术标签:

【中文标题】CoreData父、母子关系,一个CoreData子类可以和两个子类有相同的关系吗?【英文标题】:CoreData Father, mother children relationship, Can a CoreData subclass have a same relationship with two subclasses? 【发布时间】:2016-10-15 16:57:45 【问题描述】:

我对这个问题感到很震惊

我有一个“Person”Coredata 子类,

显然一个人有父亲(Person)、母亲(Person)、配偶(Person)和孩子(List of Persons)

(以关系表示)

如果一个人是他父亲的孩子之一,那么他就是他母亲两个的孩子之一。

所以“孩子”必须与母亲和父亲有关。

我不能在核心数据中做到这一点,我错过了什么吗? 有没有办法解决这个问题?

【问题讨论】:

我添加了一个新的实体,叫做Marriage NSDate *date;人*配偶; NSOrderedSet *children;好像解决了问题 【参考方案1】:

如果您使用 CoreData,您应该知道,它是 SQLite 的说唱歌手,因此您需要像在 SQL 中那样建立关系。 人“孩子”是对父亲和母亲的 n:1 财产。 为新实体建模,例如 MotherToChild,您可以在其中进行映射,如 SQL 中的规范化。

【讨论】:

//人“孩子”对父亲和母亲是 n:1 的财产//我做不到。 您必须在 Coredata 编辑器的实体部分中对关系进行建模。另一个重要的一点是,每个 1:n 关系都需要 2 个关系。 (有关更多信息,请参阅此帖子:***.com/questions/12709842/…) 我很清楚,但是一个人与母亲,父亲有两种关系。虽然父亲与一个人有孩子的关系,而母亲与同一个孩子有相同的关系,这在核心数据中是无法做到的。两个反向关系对于孩子来说是不可能的。 好的,了解您的问题。您是否尝试过为新实体建模,例如 MotherToChild,您可以在其中进行映射,如 SQL 中的规范化? 我就是这么做的 :) 你可以给出这个答案

以上是关于CoreData父、母子关系,一个CoreData子类可以和两个子类有相同的关系吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 CoreData 关系计算摘要

如何更新CoreData中另一个实体的子实体

CoreData 中的逆关系是啥

CoreData 关系与属性

NSPredicate:“添加”一对多关系CoreData中所有实体的属性值

CoreData 一对多只使用一个实体