ホームページ >データベース >mysql チュートリアル >外部キーは MySQL の一意でないインデックスを参照できますか?

外部キーは MySQL の一意でないインデックスを参照できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-08 08:47:42840ブラウズ

Can Foreign Keys Reference Non-Unique Indexes in MySQL?

MySQL の外部キー制約と非一意インデックス

外部キーは一般に 1 対 1 の関係を確立すると考えられていますが、場合によっては、この関係が厳密に強制されないことがあります。この動作は、特定のシナリオ、特に MySQL を使用する場合によく見られます。

MySQL では、外部キー制約により、参照先テーブル内の非一意のインデックスを参照できます。これは、インデックス列に基づいて、参照テーブルの行が参照テーブルの複数の行と一致する可能性があることを意味します。

この 1 対 1 の原則からの逸脱のように見えても、外部キー制約の目的が弱まるわけではありません。それは、独自性のさまざまな解釈を可能にするだけです。データベースでは、完全一致を必要とするのではなく、少なくとも 1 つのレコードが外部キー値と一致するだけで十分であると見なされます。

ただし、一意でない列で外部キーを使用する場合の影響を必ず考慮してください。この場合、削除する必要がある一致するレコードが複数ある可能性があるため、「ON DELETE CASCADE」の動作は明確ではありません。

潜在的な混乱や望ましくない影響を避けるために、外部キー制約を定義するときは、UNIQUE (PRIMARY を含む) キーと NOT NULL キーを引用することを強くお勧めします。これにより、明確な動作が保証され、データ関係のあいまいさが回避されます。

以上が外部キーは MySQL の一意でないインデックスを参照できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。