Xcode 核心数据:抽象实体和继承关系

Xcode 核心数据:抽象实体和继承关系,xcode,cocoa-touch,cocoa,core-data,relational-database,Xcode,Cocoa Touch,Cocoa,Core Data,Relational Database,我的精确模型解释起来很复杂,所以假设我在Xcode的核心数据建模器中对水果及其种子进行建模。下面是一些“伪核心数据代码”: 我以这种方式建模的原因是,我希望能够获取混合的水果,并根据它们的种子形状对它们进行排序。鉴于这种模式,我的问题是: Xcode modeler中是否有任何直接的方法(即,从GUI)允许我指定Apple只能有AppleSeed,Oranges只能有OrangeSeed?在上面的模型中,具体的水果继承了一个抽象的种子关系,我需要它来获取和排序混合的水果/种子,但我看不到任何方法

我的精确模型解释起来很复杂,所以假设我在Xcode的核心数据建模器中对水果及其种子进行建模。下面是一些“伪核心数据代码”:

我以这种方式建模的原因是,我希望能够获取混合的水果,并根据它们的种子形状对它们进行排序。鉴于这种模式,我的问题是:

Xcode modeler中是否有任何直接的方法(即,从GUI)允许我指定Apple只能有AppleSeed,Oranges只能有OrangeSeed?在上面的模型中,具体的水果继承了一个抽象的种子关系,我需要它来获取和排序混合的水果/种子,但我看不到任何方法来强制每个具体水果必须具有的确切的种子关系

在建模GUI之外,我看到了许多不同的方法来实现这一点,但我只是想确保我没有遗漏什么。有什么建议吗


希望这个例子有意义

我能想到的唯一方法是从超级实体中删除种子关系,并将特定的苹果色和橘色关系放入子实体中。您可以覆盖子实体中的关系,而无需将其从超级实体中删除,但据我所知,在模型编辑器中无法执行您所描述的操作。

这是一个遗憾,但再次强调了核心数据模型和RDBMS之间的核心区别。
abstractEntity Fruit
attribute sweetness
relationship Seed

abstractEntity Seed
attribute shape

concreteEntity Apple inherits Fruit
concreteEntity Orange inherits Fruit

concreteEntity AppleSeed inherits Seed
concreteEntity OrangeSeed inherits Seed