0

次の表があります。

                         

TOTALから推測できるので、私の腸はそれが悪いと私に言います。TIME_INTIME_OUT

これはどのような通常の形式の違反ですか?

4

1 に答える 1

1

計算の結果である値を格納することは、通常、3NF に違反します。それらは推移的な依存関係を構成します。

あなたの場合、推移的な依存関係は

time_in, time_out -> total

ペア {time_in, time_out} は候補キーではありません。

通常 (エヘム)、射影によって推移的な依存関係を解決しますが、推移的な依存関係が計算の結果に関係する場合、通常は意味がありません。3 つの明白なオプションがあります。

  • 列「合計」をドロップし、各クエリで計算します。
  • 「合計」列を削除し、合計を計算するビュー (または具体化されたビュー) を作成します。
  • 列「合計」を保持し、CHECK() 制約を追加して、値が常に正しいことを保証します。

これらはそれぞれ、パフォーマンスとメンテナンスに異なる影響を与える可能性があります。

于 2013-09-14T12:40:30.437 に答える