[解決済み] Nullable Foreign Key のバッドプラクティス?
2022-09-06 17:45:24
質問
例えば、顧客IDへの外部キーを持つOrdersテーブルがあるとします。ここで、顧客 ID のない注文を追加する場合、(それが可能かどうかは別の問題ですが)外部キーを NULL にする必要があります... これは悪い習慣ですか、それとも注文と顧客の間にリンク テーブルを使用する方が良いですか?一方、リンクテーブルを使用すると、NULLSがなくなりますが...。
NULLへの外部キーを持つレコードは、その注文の顧客が追加されるまでの一時的なものなので、実際にはデータベース内にNULLはあまり存在しないでしょう。
(私の場合、OrderとCustomerではありません)。
EDIT: 未割り当てのCustomerにリンクさせるのはどうでしょうか?
どのように解決するのですか?
リンクテーブルが おそらく より良い選択肢です。少なくとも、正規化に違反しない BCNF (Boyce-Codd normal form)に違反しません。しかし、私は現実的であることを支持します。もし、NULL値がほとんどなく、一時的なものであるなら、リンクテーブルはスキームに複雑さを加えるだけなので、省略した方がいいと思います。
リンクテーブルで注文テーブルを指す外部キーをそのリンクテーブルの主キーとして使用する場合、関係はまだ 1.
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン