ホームページ  >  記事  >  バックエンド開発  >  PHPでデータテーブルを作成するときに外部キーが必要ですか?

PHPでデータテーブルを作成するときに外部キーが必要ですか?

WBOY
WBOYオリジナル
2016-06-23 13:33:39897ブラウズ

この外部キーとは一体何なのでしょうか? とても不思議な気がします。多くの専門家が初心者に外部キーを作成するよう指示しているのを目にしましたが、なぜそれを行う必要があるのか​​を説明しなければ、残念なことに、彼らはただ去ってしまいます。魚を与えるだけで、釣り方を教えないでください。


ディスカッションへの返信(解決策)

リレーショナルデータベースでは、データの冗長性を減らすために、一部のデータをメインテーブルから分離して、マスターテーブルのレコードとレコード間の関係を示すスレーブテーブル
を形成します。スレーブ テーブル このフィールドは関連キーと呼ばれます。大まかに言うと、スレーブ テーブルの場合、このキーはデータベースによって維持される関連キーを指します。当然のことながら、マスター テーブルにない関連キー値はスレーブ テーブルに表示されません。 , この外部キー 拘束力は非常に強力で、一部の過酷な状況でのみ使用されます

したがって、結論としては、外部キーは必要ありません。盲目的に外部キーを設定すると、システムの動作に問題が発生します


それもそうです。抽象的で少し包括的 概念的な感じです

リレーショナルデータベースでは、データの冗長性を減らすために、メインテーブルから一部のデータを分離してスレーブテーブルを形成します

マスターのレコード間の関係を示すフィールドテーブルとスレーブテーブルは関連付けキーと呼ばれます。大まかに言うと、スレーブ テーブルの場合、このキーはデータベースによって維持される関連キーを指します。当然のことながら、マスター テーブルにない関連キー値はスレーブ テーブルに表示されません。 , この外部キー 拘束力は非常に強力で、一部の過酷な状況でのみ使用されます


結論としては、外部キーは必要ありません。 やみくもに外部キーを設定すると、システムの動作に支障をきたします

MySQL のようなデータ設計。ワークベンチ モデル ソフトウェアの外部キーの自動生成では何が起こっていますか?外部キーは手動で指定する必要があるほど重要だと言われていますが、なぜ気軽に生成できるのでしょうか。矛盾しすぎます

実際の開発で外部チェックを使用することは推奨されません。決済システムなどの機密性の高いシステム データでない限り、外部キーが使用されます。ワークベンチで外部キーが設定されている場合、生成時にも外部キーが使用されます。ただし、SQL を生成することをお勧めします。外部キーを作成する目的は、他の人がデータベースの構造を理解できるようにすることです。

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