2つのParent
エンティティを持つChild
エンティティタイプがあり、関係カーディナリティはmany-to-one(またはM:1
)from Parent
からChild
へ。
ビジネスルールによれば、
Parent
エンティティタイプは、任意のプロセスでChild A
またはChild B
のいずれかに接続する必要がありますが、それも…Parent
を両方に接続することも、そのプロセス中にどちらにも接続することもできません。ここでオプション性を表現する方法に困惑しています。これはParent
側では必須の関係ですが、Child
側でも同じように必須ではありません。 少なくとも1つChild
が関係に存在する必要がありますが、Child
からこれを必須と呼ぶのは正しいとは思いませんまた、Child
とのオプションの関係で両方のParent
エンティティを表すことが正しいとは思わない。
そう:
各Child
エンティティは、Parent
と必須またはオプションの関係にありますか?
これは理論的には頭の中での質問ですが、「親の好きな子は誰ですか?」一致する私の図の例:子は多くの親を支持することができ、親はどちらかの子を現在のお気に入りとして持つことができ、親は特定の瞬間に1つの子を優先することはできません。残酷ですが、私の例ではうまくいきます!
私はDB設計までは行きませんが、Child_A
またはChild_B
のいずれかから外部キーを受け入れることができる親テーブルに列を設定できると想定していましたが、Not Null
制約。それとも私の想定はずれていますか?そのため、これは上記のERDをデータベースにそのように実装できないことを意味しますか?
Child_1とchild_2は単一のエンティティタイプの2つのインスタンスであるかのように見えます。
もしそうなら、あなたはそのような(2番目の)関係を持っています
(最初の)関係は
もちろん、最初の関係はコンテキストによって異なる場合があります。