データベースの設計あなたは外部キーを使用する場合(ターン)

プライマリ/外部キー/インデックスの場合は、開発チームの一部では、データベースとの関係、また、いくつかの特定の事業と悪魔の契約であると考えられて開発チームの一部との武器取引であると考えられています。

私たちの共通のビュー:
主キーとインデックスデータ検索の速度を最適化するだけでなく、不可欠であり、他の地方の開発者は動作しません、

紛争の焦点:外部キーデータベース設計の必要性。2つの問題があります。一つは、データベース内のデータの整合性と一貫性を確保する方法です。第二は、最初のパフォーマンスへの影響であります

 

2009年11月11日13時07 changShaHacker

スクエアビュー:
1プログラムは、データの整合性に100%を確保することが困難であるため、データベースからのデータは、マシンとデータベース・サーバの外部キー、またはときに、他の問題が発生したが、それが可能であっても、自己一貫性、完全性、およびより信頼性を確保するために、最大データの一貫性と整合性を確保します。
例:データベースとアプリケーションは、多くの関係に一つであり、アプリケーションは、アプリケーションB、AとBの増加、大規模システムのデータの彼の部分の整合性を維持する、2つのアプリケーションが実行する別の開発チームもあり。彼らはどのようにデータの整合性を確保するために調整し、一年後、それならばCのアプリケーションを追加したのですか? 
2、主な外部キーのデータベース設計は、データベースの設計に非常に重要であるERダイアグラムの可読性を向上させることができます。
3、ある程度の外部キーのビジネスロジックを説明し、思いやりのデザイン包括的な特定を行います

 

2009年11月11日午後01時08分TeDongDesiger

Fanfangguandian:
1、トリガすることができ、またはアプリケーションがデータ整合性を保証するために
2、または主キーにあまり重点を/外部キーは、過度の表のような問題が生じる、開発の難しさに追加される
3、単純なデータ管理のためのない外部キー、操作便利な、高性能(例えば、インポートおよびエクスポート操作など、挿入時には、更新、より迅速にデータを削除)
EG:大規模なデータベースでも、毎日何百万ものレコードを挿入するためのプログラム、想像して、外部キーに行きたくありません、外部キー制約がある場合には、レコードをスキャンしようとするたびに、一般的にも、複数の外部キーフィールドを持っている、修飾されて、そのようなスキャンの数は、シリーズに成長しています!外部キーに結合された場合、私はあなたが28時間を必要とし、完了するために3時間でストレージに入れてプログラムを持っています!  

結論:
1、外部キーを使用して大規模システム(性能要件、高い安全要件)に、(高いパフォーマンス要件、それらの制御のセキュリティ)大規模システムにおいて、外部キーなしで、カジュアル小さなシステム、好ましくは外部キーと。
図2に示すように、外部キーを使用することのない過度の追求、適切でなければならない
すべてのアプリケーションがこの層を介してデータベースにアクセスするために、一方が書くべきことを確実にするために、3、ではない外部キーとアプリケーション制御データの一貫性と整合性

 

転送:https://www.cnblogs.com/chenkai/archive/2009/11/11/1601193.html#!comments   (PS:一見の価値のコメント)

おすすめ

転載: www.cnblogs.com/helios-fz/p/10932582.html