ホームページ  >  記事  >  データベース  >  navicat で外部キーを作成する方法

navicat で外部キーを作成する方法

angryTom
angryTomオリジナル
2019-08-08 11:59:599998ブラウズ

navicat で外部キーを作成する方法

データベース外部キーは、2 つの関係間の相関関係を表します。別のリレーションシップの外部キーを主キーとするテーブルをマスターテーブル、外部キーを持つテーブルをマスターテーブルのスレーブテーブルと呼びます。以下では、navicat で外部キーを作成する方法を紹介します。

推奨チュートリアル: MySQL 入門ビデオ チュートリアル

1. navicat を開き、操作するデータベース テーブルを選択します。右クリックして「テーブルの設計」を選択します。

navicat で外部キーを作成する方法

#2. [外部キー] オプションをクリックして、外部キーの設定を開始します。

navicat で外部キーを作成する方法

#合計 7 つの列があります。これらの列の意味を簡単に紹介します。

「名前」: 入力する必要はありません。正常に保存すると、システムが自動的に生成します。

「フィールド」: どのキーを外部キーとして設定するかを意味します。

「参照データベース」: 外部キーに関連付けられたデータベース。

「参照テーブル」: 関連テーブル

「参照フィールド」: 関連フィールド、

「削除時」: 削除時に選択したアクションです。

「更新時」:更新時に選択した動作です。

拡張情報: 外部キーの役割

データの一貫性と整合性を維持します。主な目的は、次のストレージを制御することです。外部キーテーブル のデータ。 2 つのテーブルを関連付けるには、外部キーはテーブル内の列の値を参照するか、NULL 値を使用することしかできません。

外部キーが使用されていない場合、値 (20140999999 など) が表 2 の学生番号フィールドに挿入されますが、この値は表 1 には存在しません。この時点で、データベースは挿入を許可します。データの関係がチェックされます。ただし、外部キーを設定する場合は、表 2 の学生 ID フィールドに挿入する値が、表 1 の学生 ID フィールドに存在する必要があります。同時に、表 1 の特定の学生番号フィールドを削除する場合は、そのフィールド値を参照する列が表 2 に存在しないことを確認する必要があります。そうしないと、そのフィールドは削除されません。これは、データの一貫性と完全性の維持と呼ばれます。右に示すように、表 2 が表 1 の特定の学生 ID を参照しているにもかかわらず、表 1 の学生 ID を削除すると、表 2 はその学生 ID がどの学生に対応するかを認識できなくなります。

データベース内のテーブルは、データの冗長性、挿入異常、削除異常、その他の現象を防ぐための仕様に準拠している必要があります。正規プロセスは、テーブルを分解するプロセスです。分解後、物の代表的な属性がさまざまなテーブルに表示されます。明らかに、それらは一貫している必要があります。たとえば、学生の代表的なデータは学生番号 012 です。これは学生テーブルでは 012 であり、成績テーブルでも 012 である必要があります。この一貫性は外部キーによって実現されます。外部キーの機能は次のとおりです。その値は別のテーブルの主キー値である必要があります。学生番号は、学生テーブルの主キーであり、成績テーブルの外部キーです。成績表の学生番号は学生名簿の学生番号でなければなりません。したがって、生徒表の生徒番号と成績表の生徒番号は一致します。外部キーの機能は、異なるテーブル内の同じものの符号の一貫性を達成することであることが直感的に理解できます。 2 外部キーで接続された 2 つのテーブルの機能実現 個別に操作する場合、外部キー機能は 2 つの方法で実現されます [4]:

実行を阻止する

●テーブルから新しい行を挿入すると、外部キーの値がメインテーブルの主キーの値ではないため、挿入ができません;

●外部キーの値を変更します。テーブルであり、新しい値はメイン テーブルの主キーではありません。この値により変更が禁止されます。

#●行がマスター テーブルから削除される場合、その主キー値は、次の場合に削除されなくなります。スレーブ テーブルに存在します (削除する場合は、まずスレーブ テーブルから該当する行を削除する必要があります);

●マスター テーブルは主キーの値を変更します。古い値がスレーブに存在する場合テーブルの変更はブロックされます (変更する場合は、まずスレーブ テーブルから関連する行を削除する必要があります)。

カスケード実行

●メイン テーブルから行を削除し、関連する行もテーブルからまとめて削除します。

#●主キーの値を変更します。メインテーブル、テーブルの関連行の外部キー値をまとめて変更します。ユーザーが選択できる 2 つの方法が提供されています。どの方法を選択しても、テーブルに余分な行は存在しません。別の観点から見ると、スレーブ テーブルとマスター テーブルのフラグの不一致を拒否して、マスター テーブルのフラグとの整合性を確保することで、同じことが実現されます。

##●2 つの実装方法、次の方法から選択します:

#●インターフェース: カスケード更新とカスケード削除の 2 つの選択ボックスを設定します。選択されている場合はカスケードが実行され、そうでない場合はカスケードが実行されます。実行;

#●コマンド: E)kSCM)E と RESTRICT を 2 つのオプション オプションとし、CASCADE はカスケード実行を意味し、RESTRICT は実行の禁止を意味します。

以上がnavicat で外部キーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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