我以前用过核心数据,但我要构建的这个数据库有一个特殊性,需要一种特殊的关系,这让我的大脑融化。
我有 2 个实体,我们称它们为 Cage 和 Animal。
- Cage 有一个属性
name
- Animal 有一个
name
和image
属性,并且必须跟踪它的 child 。
一个可能的结构可以是这样的
cage ---------- animal 1
|
|_____ animal 2
|
|_____ animal 3 ____ animal 4
|
|__ animal 5
|
|_____ animal 6
查看此结构,您会看到 Animal 1
、Animal 2
和 Animal 3
的父级为 Cage
或者是凯奇的“ child ”对象,如果你愿意的话。另一方面,Animal 3
有 2 个子对象(4 和 5),Animal 5
有一个子对象。
我需要 Cage
和 Animal
是不同的实体。
因此,您看到 Animal
对象可以有其他 Animals 作为子对象。一只动物可以有一个 parent ,但可以有多个 child 。 Cage 对象只能有 child 。
我试图添加一个 children
关系,目标等于 Animal 并且反向等于 children
(toMany) 但这就是让我的大脑融化的原因,因为如果我这样做,这将一次是 parent ,一次是 child ,更不用说 child 这个名字会使编码难以绕过头......
我必须如何建立实体之间的关系才能完成这项工作?
最佳答案
首先创建您的实体和属性。然后建立你的关系。 “动物”和“ child ”的关系应该设置为“很多”。将“cage”和“parent”设置为“to one”关系。最后,为每个关系设置目标和逆。
“动物”和“笼子”的关系应该是相反的。 关系“parent”和“children”应该设置为相反。
完成后应该看起来像这样:
关于ios - 如何使用核心数据创建递归的一对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516684/