2

1 対 1 の関係を持つ 2 つのテーブルがあります。

Person
 - Id
 - HouseFk

House
 - Id

Person は House への外部キーを持っています。HouseFk も NULL になる可能性があることに注意してください。これを UML で表現する正しい方法は何でしょうか? 記法には 2 つのバリエーションがあります。

1対0..1:

      1     0..1    
Person----------House

0..1 対 1:

      0..1     1    
Person----------House

それはどちらにあり、なぜですか?1 対多の関係ではキーの配置が逆になっている、つまり B は A を参照し、そこから 1 対 1 でそれを推測できると聞いたので、私は本当に混乱しています (ただし、私の場合は、それは 1 対 0 または 1) シナリオで、A は B を参照するため、0..1 は B 側 (最初) にありますか? それともA面(セカンド)?

ありがとう!

4

1 に答える 1

5

あなたの関係のルールは何ですか?最初にそれを定義する必要があります。人は家を「所有」していますか?人は家に「住んでいます」? とりあえず「所有」としましょう。次に、いくつかのオプションがあります。

オプション 1: オプションなし (必須の 1:1):

- Each Person must own exactly one House
- Each House must be owned by exactly one Person

これは表されます

       1           1
Person ------------- House

オプション 2a: オプションの片道:

 - Each Person may own at most one House
 - A Person need not own any Houses
 - Each House must be owned by exactly one Person

これは表されます

       1        0..1
Person ------------- House

オプション 2b: 任意の方法:

 - Each Person must own exactly one House
 - Each House may be owned by at most one Person
 - A House need not be owned by any Person

これは表されます

       0..1        1
Person ------------- House

オプション 3: オプションの双方向:

 - Each Person may own at most one House
 - A Person need not own any Houses
 - Each House may be owned by at most one Person
 - A House need not be owned by any Person

これは表されます

       0..1     0..1
Person ------------- House

編集(*)

現状のDBスキーマは上記のいずれでもありません。それは言います:

 - Each Person may own at most one House
 - A Person need not own any Houses
 - Each House may be owned by many People
 - A House need not be owned by any Person

それがあなたが望むものかどうかわからない....?[理由がわからない場合は叫ぶ]。

h番目。

*以下のコメントで訂正を指摘してくれた ypercube に感謝します。

于 2012-04-17T21:12:23.450 に答える