外部キーは、2 つのテーブル間の親子関係を定義します。親テーブルの主キーは、最大 n 個の子テーブル行の外部キーです。
親テーブルの主キーが UPDATE を取得すると、UPDATE RULE が開始されます。すべての子行も更新されるか、NULL に設定されるか、またはその他のものに設定されます。ただし、ベスト プラクティスは、絶対に変更されない主キー (固定 ID など) を使用することです。そのため、これはあまり重要でないルールです。
より重要なのは DELETE ルールです。親行が削除された場合 (たとえば、注文が削除された場合) はどうなるでしょうか。 CASCADE DELETE を使用してすべての子行 (すべての注文明細) を削除することも、外部キーを NULL に設定することもできます (親はもうありません)。これは完全に具体的なシナリオ次第です。
注文/注文明細のシナリオでは、完全な注文が削除されたときに注文明細を削除すると非常に便利な場合がありますが、製品を参照する注文が削除されたという理由だけで製品を削除したくない場合があります。 1 つの正しい答え - シナリオとアプリによって異なります。
マーク