2016-10-15 67 views
0

我这么这个问题达成CoreData父亲,母亲子女关系,CoreData子类可以与两个子类具有相同的关系吗?

我有一个“人” Coredata子类,

显然,一个人有一个父亲(人),母亲(人),配偶(人)和儿童(名单人)

(以关系来表示)

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

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

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

+1

我添加了一个名为Marriage的新实体 NSDate * date; 人*配偶; NSOrderedSet * children; 它似乎解决了问题 – riyaz

回答

2

如果您使用CoreData,您应该知道它是SQLite的说唱者,因此您需要像SQL中那样制作关系数据库。 人的“孩子”对父亲和母亲来说是一个n:1的实现。 建模一个新实体,例如MotherToChild,您可以在SQL中执行像标准化一样的映射。

+0

// Person“child”对父亲和母亲来说是一个n:1的实现// 我无法做到这一点。 – riyaz

+0

您必须在Coredata编辑器的实体部分建模关系。另一个重要的点是你需要2个关系,每个1:n关系。 (看到这篇文章的更多信息:http://stackoverflow.com/questions/12709842/ios-coredata-inverse-relationships-to-itself) – weissja19

+0

我清楚地了解它,但一个人有两个关系,母亲,父亲。虽然父亲与子女有亲属关系,母亲与同一子女有着同样的关系,但核心数据无法做到这一点。 对于儿童来说,两种相反的关系是不可能的。 – riyaz