3

私はデータベース設計から長い (1 年以上) 休憩を取り、ちょうど戻ってきました。作成中の Web サイト用のデータベースを設計しています。1 つのテーブル (2 つの別々の列) に 2 つのブール値を格納しています。最初の値が true の場合、他の値も常に true になりますが、最初の値が false の場合、他の値は true または false になる可能性があることに気付きました。私に関する限り、これは推移的な依存関係ではなく、新しいテーブルを作成するべきではありませんが、すべてが正しく行われていることを確認したいと考えています。2 番目のブール値のように動作する値が複数ある場合、同じテーブルに保持しますか? この種のデータをデータベースに格納する最良の方法は何ですか?

アンサーにER図が含まれていれば幸いです。

4

4 に答える 4

0

私は解決策を考えましたが、それが良いかどうかはわかりません。最初の値が false の場合、FK を使用して他のすべての値の別のテーブルを作成し、値が true の場合は他の値を格納できます。これらの値のテーブルを生成することはできません。

于 2012-06-12T15:35:07.393 に答える
0

これは機能依存ではないため、推移的な機能依存ではありません。

定義により、X -> Y は、各 X 値が正確に 1 つの Y 値に関連付けられている場合に限ります。

あなたの場合、X が false の場合、Y は真または偽である可能性があるため、上記の定義は当てはまりません。


ただし、多値の依存関係のように見えます。

適切なCHECK制約を追加する以外に、それについて何かをすべきかどうかはわかりません(物事を複雑にするコストは、予想される利益に対して高すぎるでしょう)。

于 2012-06-12T09:25:05.667 に答える
-1

あなたの質問は少し漠然としていますが、試してみます。まず、あなたが説明したことから、推移的な依存関係はありません。その理由は、推移的な依存関係が存在するために3つの属性が必要な場合に、テーブルの属性であると私が想定しているものを2つだけ言及しているためです。

A が B を含意し、B が C を含意する場合、推移的な依存関係が存在します。つまり、A は B を介して推移的に C を含意します。

とにかく、小さなデータサンプルとコンテキストのない関数の依存関係を探すと、データベース設計が不十分になると思います。テーブルの要素は何ですか?

于 2012-06-12T09:15:34.503 に答える