意味のあるフィールドをテーブル A の主キーとして使用する場合、ビジネスには更新操作が含まれ、関連テーブルであるテーブル B の外部キーは無効になります。外部キー制約を設定した場合、データベースはこのフィールド値の変更を許可しません。
まず、主キーとインデックスの概念上の違いから説明します。 主キーは、フィールドがテーブルの一意なレコードを識別するためのステートメントにすぎませんが、一意なインデックスによって実現されます。
リレーショナルデータベースのテーブルの大部分は、主にプログラムのその後の開発の便宜のために、論理プライマリキーの範囲に属するユニークなプライマリキーを持つことが推奨され、特にWebアプリケーションでは、このIdは次のようにハイパーリンクのパラメータとして簡単に渡すことができます: editPost.do?id=321
また、複数のフィールドの組み合わせを主キーとして使用し、レコードの一意な行を決定することは、物理的な主キーというカテゴリーに属し、ビジネスのルールと強く関係するため、論理的な主キーほど開発の容易さや拡張性に欠けます。
データベース設計のパラダイムに基づいています。主キーは最初のパラダイムです。携帯電話番号を一意であるとするあなたの使用は、実際には完全に精査に耐えるものではありませんし、現実の世界ではその制約が破られる可能性は十分にあります。例えば、あなたはこう考えたことがありますか:有効期限が切れた携帯電話番号があり、それが譲渡されて所有者が変わっています。その番号の持ち主が行ったことは、元の人物に対してまだカウントされます。この時点で携帯電話番号が主キーになっていたらどうでしょう?システムは、携帯電話番号を保持していた2人が行ったことを区別することはできません。 その他のケースも同様です。
もう一つの有名な例はIDカード番号です。確かにID番号はその人固有のものですが、同じ番号で複数のIDを取得することは可能です。問題は、システムがID番号を一意の主キーとしていることにあります。この時点で、IDカードが盗まれた場合、新旧のIDカードの「主キー」がIDカード番号であるため、システム内でキャンセルする方法がありません。すると......古いIDカードは完全に有効です。この時、幸いなことに、IDカードの有効期限というものがあり、IDカードの有効期限だけを頼りに識別することができます。今、多くの詐欺がここから来ています。パスポートの場合、新しいパスポートを取得した場合、パスポート番号は古いパスポート番号と同じにはなりません。むしろ、旧パスポート番号が何であったかを記した裏書が追加されます。だから、経験者は語るのです。直感を信じないでください。ビジネスにおけるいわゆるユニークなものは、しばしば信頼性に欠け、時の試練に耐えられません。そのため、ビジネスとは関係のない別の主キーが必要です。専門用語では代理主キーと呼ばれます。