如何使用核心数据创建递归的一对多关系?

我之前使用过核心数据,但是我必须构建的这个数据库有一个特殊性,需要一种特殊的关系来融化我的大脑。

我有2个实体,我们称之为Cage和Animal。

  • Cage有一个属性name
  • Animal具有nameimage属性,必须跟踪其子项。

可能的结构可能是这样的

 cage ---------- animal 1 | |_____ animal 2 | |_____ animal 3 ____ animal 4 | |__ animal 5 | |_____ animal 6 

看看这个结构你会看到Animal 1Animal 2Animal 3Cage作为父母,或者你是Cage的“儿童”对象。 另一方面, Animal 3有2个子对象(4和5), Animal 5有一个子对象。

我需要CageAnimal成为不同的实体。

因此,您会看到Animal对象可以将其他动物作为子对象。 动物可以有一个父母但有多个孩子。 Cage对象只能有子对象。

我试图添加一个children关系,其目的地等于动物,反向等于children (toMany),但这正在融化我的大脑,因为如果我这样做,这将是父母一次和孩子在其他人,而不是提到孩子的名字会使编码难以包围…

我如何建立实体之间的关系以使其工作?

首先创建您的实体和属性。 然后创建你的关系。 “动物”和“儿童”的关系呼喊被设定为“对许多人”。 将“cage”和“parent”设置为“to one”关系。 最后,为每个关系设置目标和反向。

关系“动物”和“笼子”应该是相反的。 关系“父”和“子”应设置为反向。

当你完成时应该看起来像这样:

在此处输入图像描述

动物生活在笼子里,两只动物可以有关系。

我提出了以下ERD