2

私の正確なモデルは説明が複雑なので、XcodeのCoreDataモデラーで果物とその種子をモデリングしているとしましょう。ここにいくつかの「疑似コアデータコード」があります:

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の外でこれを強制するさまざまな方法がありますが、何かを見逃していないことを確認したいだけです。助言がありますか?

うまくいけば、この例は理にかなっています!

4

1 に答える 1

3

私が考えることができる唯一の方法は、シード関係をスーパーエンティティから削除し、特定の AppleSeed および OrangeSeed 関係をサブエンティティに配置することです。サブエンティティの関係をスーパーエンティティから削除せずにオーバーライドできる場合がありますが、私が知る限り、モデル エディタで説明していることを実行する方法はありません。

于 2009-09-24T22:45:28.967 に答える