主キーを参照する外部キーにPostgreSQLデータベースでNOT NULL制約が必要ですか?
データベースは非常に標準化されており、非常に大きくなります。上記のクエリが不要な場合、クエリをさらに遅くする特別な制約を追加することは望ましくありません。PKを参照する外部キーにNOT NULL制約が必要ですか?
答えて
あなたはそれが価値を持っている必要がある場合、それがNULLでない作る、それがNULL可能にする、その後、そのテーブルのFK列に不明を表すことができるようにしたい場合。
あなたがnullのFK値の参照テーブルに必要な数だけレコードを持つことができます。ユニーク制約は、参照テーブル(FKがある場合)の行にない参照テーブル(PKがある場合)の行にあります。
これは正しいです。別の言い方をすると、それは1:Nの関係か0:Nの関係かをモデル化するかどうかによって異なります。すなわち、関係は任意であるか? –
1:1の関係。私が取り組んでいるテーブルはブリッジテーブルです。 – WolfmanDragon
それが1:Nならば、FK列はNot Null制約を持つべきです(SHOULD)。 –
主キーは一意である必要があり、理想的には、同時実行の問題を制限するために、データベースによって選ばれるべきで、そう、それが一意であることができますが、1つのレコードに対して、他のすべてのレコードが値を持っている必要があります。
そうでない場合は、どのように複数の一致がある場合は、この外部キーが関連どの行知っているのだろうか?
ので、新しい街で述べたように、NULLが有効である必要がありますが、1つのレコードに対して、一意性として大きな問題になります。
編集:おっと、ご質問を誤解しました。私が前に外部キーにnullを入れているが、あなたはカスケードは、例えば削除持っている場合は、NULL値を持つ主テーブルのキーを持っていない限り、NULLが、動作しません
。
OPは_FOREIGN_キーの "not null"制約について質問していました – ChssPly76
- 1. 外部キーには常に制約が必要ですか?
- 2. NULL可能フィールドで外部キー制約が失敗する
- 3. 自己参照外部キー
- 4. SQL Serverの外部キー制約が参照する無効な表
- 5. 外部キー制約がエラー
- 6. 外部キー制約
- 7. 複数の列に外部キー制約を追加できませんpk
- 8. 外部キー制約を外す
- 9. 外部キー制約を追加する
- 10. 外部キーの制約がない「キー」とは何ですか?
- 11. 春ブーツが外部キー制約に
- 12. MySQLクエリプライマリキーを参照する外部キー
- 13. SQLの外部キー制約
- 14. Nullable外部キー制約
- 15. デバッグ外部キー制約エラー
- 16. エラー外部キー制約
- 17. SqlAlchemyの外部キー制約
- 18. 外部キー制約エラー4
- 19. フラスコの外部キー制約
- 20. 外部キーの制約エラー
- 21. ストアドプロシージャの外部キー制約
- 22. 1:1外部キー制約
- 23. エラー1215外部キー制約
- 24. sqlite、外部キー参照をカウントする
- 25. Linqが参照する外部キー参照データ
- 26. 参照制約が必須の場合
- 27. Laravelは私が既に作成外部キー制約を持つテーブルを持っている外部キー制約
- 28. プライマリキーと外部キーに制約を付ける必要があるのはいつですか?
- 29. API SQL外部キー参照の検証
- 30. 複合外部キーの場合、主キーとの列の組み合わせに必要な参照先テーブルの複合UNIQUE制約は/ whyですか?
アプリケーションのスピードは正確性よりも重要ですか?あなたは、ヌルでないチェックの費用を認識しません。あなたの質問に対する答えは「いいえ」ですが、わかっている制約があればそれを指定します。 –