0

私のデータベースには、次の仕様のテーブルがあります。

  • 1つのPK
  • 外部キーを持つ3つのフィールド
  • いくつかの統計フィールド

問題はここにあります:

すべての行で、1つのFKフィールドのみが入力されます。最良の解決策AまたはBは何ですか?

A-テーブルに3FKを定義します

B-1つのフィールドをFK_TYPEとして定義し、1つのフィールドをDEMAND_FKとして定義し、結果についてFK_TYPEのチェックを使用します

4

2 に答える 2

2

オプションA-この設計が必要な場合は、外部キーごとに個別の列が必要になります。「条件付き」外部キーを定義する(標準の)方法はありません。

システムがチェック制約をサポートしている場合は、FK列の1つだけがnullにならないようにチェック制約を含めます。チェック制約をサポートしていない場合は、これと同じチェックを実施するトリガーを追加します。

于 2013-01-22T08:47:23.613 に答える
1

私が間違っていなければ、どのリレーショナルデータベースでもBは不可能です。外部キーは、テーブルの1つの主キーのみを参照できます。Bを使用する場合は、アプリケーションレベルで制約を追加する必要があります。それ以外の場合はAを使用します。

于 2013-01-22T08:52:37.617 に答える