MySQL 外部キーで NULL 値を許可する必要がありますか?

Mary-Kate Olsen
リリース: 2024-10-31 04:09:30
オリジナル
453 人が閲覧しました

Should You Allow NULL Values in MySQL Foreign Keys?

MySQL での NULL 外部キー関係の許可

MySQL でデータをモデル化する場合、テーブル間の参照整合性を確保することが重要です。外部キーは、異なるテーブル内の行間の関係を確立し、1 つのテーブル内のデータが関連するテーブルに対応するレコードを持つことを保証します。ただし、場合によっては、関連テーブルに対応する値がないデータを表す必要がある場合があります。

画像データベースで画像フラグを管理する例を考えてみましょう。画像に最初にフラグが付けられたとき、最終的な解像度タイプが存在しない可能性があります。このような場合、tblImageFlags テーブルの解決タイプ フィールドを NULL に設定すると、この情報の欠如を表すことができます。

MySQL では、NULL 値を許可する外部キー カラムの宣言が許可されています。これは、関係する列の 1 つが NULL であっても、2 つのテーブル間に外部キー関係を作成できることを意味します。この柔軟性により、データが不完全または不定である可能性がある実際のシナリオをモデル化できます。

外部キー列で NULL 値を許可するには、その宣言で NOT NULL 制約を省略するだけです。たとえば、tblImageFlags テーブルでは、resolutionTypeID 列を次のように定義できます。

tblImageFlags (
    imageFlagID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    imageID INT UNSIGNED NOT NULL,
    flagTypeID INT UNSIGNED NOT NULL,
    resolutionTypeID INT UNSIGNED,
    ...
);
ログイン後にコピー

resolutionTypeID 列に NULL 値を許可することで、画像に最初にフラグが付けられたときに解像度タイプが存在しないことを表すことができます。フラグのステータスが変化し、解決タイプが決定されると、2 つのテーブル間の関係の整合性を維持しながら、列を適切な値で更新できます。

外部キーで NULL 値を許可することで柔軟性が得られることに注意してください。 、データの不整合が発生する可能性もあります。ビジネス ロジックとデータ要件を慎重に検討して、特定のシナリオで NULL 値が適切かどうかを判断することが重要です。

以上がMySQL 外部キーで NULL 値を許可する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!