ホームページ >データベース >mysql チュートリアル >外部キーは MySQL の一意でないインデックスを参照できますか?
MySQL の外部キー制約と非一意インデックス
外部キーは一般に 1 対 1 の関係を確立すると考えられていますが、場合によっては、この関係が厳密に強制されないことがあります。この動作は、特定のシナリオ、特に MySQL を使用する場合によく見られます。
MySQL では、外部キー制約により、参照先テーブル内の非一意のインデックスを参照できます。これは、インデックス列に基づいて、参照テーブルの行が参照テーブルの複数の行と一致する可能性があることを意味します。
この 1 対 1 の原則からの逸脱のように見えても、外部キー制約の目的が弱まるわけではありません。それは、独自性のさまざまな解釈を可能にするだけです。データベースでは、完全一致を必要とするのではなく、少なくとも 1 つのレコードが外部キー値と一致するだけで十分であると見なされます。
ただし、一意でない列で外部キーを使用する場合の影響を必ず考慮してください。この場合、削除する必要がある一致するレコードが複数ある可能性があるため、「ON DELETE CASCADE」の動作は明確ではありません。
潜在的な混乱や望ましくない影響を避けるために、外部キー制約を定義するときは、UNIQUE (PRIMARY を含む) キーと NOT NULL キーを引用することを強くお勧めします。これにより、明確な動作が保証され、データ関係のあいまいさが回避されます。
以上が外部キーは MySQL の一意でないインデックスを参照できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。