私は(ID、FIRST_NAME、MIDDLE_NAME、LAST_NAME、性別) と私は携帯電話の表のように、第二種の同様のテーブルを持つことになる(id_fk、email_add)この特定のシナリオでは主キーが必要ですか?
Infactはとの電子メールテーブルと名のテーブルを持っています(id_fk、phone_no)。ここで、id_fkは、名前テーブルのidを参照する外部キーです。
2番目と3番目のテーブルにプライマリキーを持つのは正当な理由ですか?または他の同様のテーブル?あるいは、別のスキーマを提案しますか?
PS:テーブルは、行がそうでない場合、共有順不同のコレクションを表し、持っていないため、主キーは(id_fk、PHONE_NO)テーブル全体で、あなたが記述例ではアプリ
私が質問したのは、データベースを勉強しているうちに、私は実際の経験(プロジェクト)を使っていないということです。 "データベースが拡大して複雑になるにつれて、すぐに問題が発生しなくなります。 あなたは親切に私に例を与えることができますか?私が持っているかもしれない問題のように。 あなたのアドバイスは健全ですが、私はすべてのテーブルに生成されたpkを使用する傾向があります。 – Sujoy
3番目のテーブル(id_fk、phone_no)では、プライマリキーはid_fkとphone_noの複合キーです。これは、プライマリキーを変更するときにphone_noを変更する必要がない場合に意味します。さらに、後であなたのアプリケーションを強化し、仕事、携帯電話番号、自宅の番号などを持っていて、ユーザーがすべて同じ番号を入力すると、重複した主キーエラーで挿入が失敗します。 – sipwiz
その場合、電話番号テーブルには「タイプ」という3番目の列があり、複合主キーは(id_fk、phone_no、type)である必要があります。 –