1

次のように、子供の子供を持つ一連のテーブルがあります。

親 (1 対多) であるクライアント (PK ClientID)

親 (1 対多) であるプロパティ (PK PropertyID、FK ClientID)

プロパティの詳細 (PK PropDetailID、FK PropertyID) およびケース (PK CaseID、FK PropertyID)。

親テーブルの外部キーをさらに下に繰り返す必要がありますか? つまり、私のテーブルは次のようになります。

クライアント (PK ClientID)

プロパティ (PK PropertyID、FK クライアント ID)

PropertyDetail (PK PropDetailID、FK PropertyID、FK クライアント ID)

ケース (PK CaseID、FK PropertyID、FK ClientID)

代わりは?また、どちらのセットアップも正規化されていない場合、これを行う正規化された方法は何ですか?

4

3 に答える 3

1

いいえ、単純な結合でこの情報にアクセスできるため、外部キーを繰り返さないでください。孫に追加すると冗長性が追加され、2つが同期しなくなったときに問題が発生する可能性があります。最初のデザインは2番目のデザインよりも見栄えがします。

単語の意味によっては、エンティティ属性値(EAV)モデルをproperty使用してクライアントプロパティを格納している可能性があります。EAVモデルが適切な場合もありますが、一般的には回避する必要があります。可能であれば、代わりに固定スキーマを使用してみてください。

参考文献:

于 2010-09-17T19:42:34.607 に答える
0

PropertyDetail/Caseに両方の外部キーを用意する必要はありません。これらのものはにナビゲートすることができます。

于 2010-09-17T19:42:10.090 に答える
0

外部キーをさらに下に繰り返す必要はありません。プロパティのClientIDを確認することで、プロパティの詳細のClientIDを判別できます。

必要なすべての情報は、単純な結合によって決定できます。

于 2010-09-17T19:43:01.150 に答える