データベースを作成するときに、あるテーブルに他のテーブルの2つの主キーのみが含まれていると、何が起きるかは、両方が外部キーであると仮定しています。テーブルにプライマリキーが必要ですか?主キーと外部キー?
答えて
テーブルに必ずしもプライマリキーが関連付けられている必要はありません。それは私
を次のように完全に有効なTable_Album
pkey | name
1 | name1
2 | name2
Table_Song
pkey | name
1 | song1
2 | song2
3 | song3
あなたはその後、
Table_Album_Song_Map
01を述べたテーブルを持つことができますid | Album | Song # Here id is just row number and not primary key
1 | name1 | song1
2 | name1 | song2
3 | name2 | song3
いいえ;テーブルはプライマリキーを持つ必要はありません。
このようなリンク/マッピングテーブルの場合は、しばしば(通常は?)しません。
ちょうど2つの外部キーと他には何もしてリンクテーブルを助け希望(何のサロゲートキーは、単純な意味のない主キーを作るために追加されません)通常一意であるように制約されます(そうでない場合は、あなたがされません重複を区別することができます - これは通常の形式にも違反しています)ので、主キーを構成する複合キーとしてこれら2つのキーを一緒に使用します(PKは定義上一意でなければならず、そのようなリンクテーブルのPKのための選択)。主キー内のこれらの列の順序は、通常、最も頻繁な検索順序、すなわちpersonidによって決定されます。accountidは、personidのaccountidのコンポジット主キーでpersonidを最初に持つことがあります。
+1はい、あなたは主キーが1つ以上の列の*制約*です。それは他の答えが仮定しているように、列ではありません。 –
私は同意しますが、それはどれも*必須*ではありません。これはどのように私が質問を読むかです。 –
@Dave Newton主キーを持つ必要はありませんが、このようなテーブルのメンテナンスは、ほとんどすべての可能性がありますが、実際には強く想定しています(ただし、必要ありませんが重複は簡単に区別できません。 )一意のキーであり、2つの列しかない場合、それらは両方とも外部キーであり、NULLになる可能性は低いので、私は先に進んで主キーを作成し、すべての鳥を1つの石で殺します。 –
関連エンティティまたはテーブルがある場合は、両方の親のキーで構成される複合プライマリキーを作成することをお勧めします。この例では、アルバムと歌のコンポジットのAlbum-Song-Mapに一意性の制約があります。これらをプライマリキーにしないで、組み合わせをユニークにすると、Album-Song-Mapで重複を持つことができます。 Album-Song-Mapの複合キーは両方の親のキーですが、個々に、それぞれ親、アルバム、およびソングに戻る外部キーです。私の経験では、アソシエーティブ・エンティティは通常マッピングのためだけでなく、ビジネス・アトリビュートもいくつか含んでいます。たとえば、ある曲のDuration(再生時間)が別の曲と異なるとします。この属性はAlbum-Song-Mapになければなりません。私はダンスのためにたくさんの音楽を使いますが、しばしば曲のデュレーションはアルバムごとに異なります。
- 1. 主キーと外部キー
- 2. 変更主キー、外部キー
- 3. Grails:主キーとしての外部キー?
- 4. Redshift Constraints(主キーと外部キー制約)
- 5. 同じテーブルの主キーと外部キー
- 6. 出力に主キーと外部キー
- 7. 複合主キーと外部キーとしてのユニークキー
- 8. 主キーとしての複数の外部キー
- 9. (MySQLの)主キーのw/2と同じ外部キー
- 10. 主キーと外部キーの値の一致方法は?
- 11. 子テーブルの主キーとして外部キーを持つ
- 12. 主キーと外部キー - テーブルのエントリの削除は
- 13. 複合主キーを外部キーとして使用
- 14. mysqlの複合主キーとの外部キー関係
- 15. djangoのモデルでの外部キーと主キーの関係
- 16. 主キー(EclipseLINK)の一部である複合外部キーとの関係
- 17. 外部キーとしての主キーが重複定義例外をスローする
- 18. 主キーの一部が外部キーであるJPAでの複合主キーのマッピング方法
- 19. 複合キーと外部キー
- 20. MySql外部キー主キーが一致しません
- 21. 複数のテーブル(主キー)に1つの外部キーを接続
- 22. 主キー削除後の外部キーのデクリメントSQLite
- 23. 複合主キーの外部キーが機能しない
- 24. 外部キーを持つ複合主キーを保存する
- 25. 主キーによる外部キーの置換
- 26. 表示外部キーの外部キー
- 27. jpaに外部キーと複合主キーを追加していますか?
- 28. Djangoと外部キー
- 29. レールと外部キー
- 30. 外部キーとクラスタ
これは奇妙な大量ダウン・ボークだった。 –