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

时间:2009-09-24 22:16:25

标签: xcode cocoa-touch cocoa core-data relational-database

我的确切模型很难解释,所以说我在Xcode的Core Data建模器中对水果及其种子进行建模。这是一些“伪核心数据代码”:

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

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

在Xcode建模器中是否有任何直接的方式(即从GUI),这使我能够指定Apple只能让AppleSeeds和Oranges只能拥有OrangeSeeds?在上面的模型中,具体的水果继承了一个抽象的种子关系,我需要它来获取和分类混合的水果/种子,但我没有看到任何方法来强制确定每个具体水果必须具有的种子关系。

我看到许多不同的方法在建模GUI之外强制执行此操作,但只是想确保我没有遗漏某些东西。有什么建议吗?

希望这个例子有意义!

1 个答案:

答案 0 :(得分:3)

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