2011-02-01 52 views
2

親テーブルと子テーブルの間の1対多の関連付け。子テーブルの主キーとして外部キーを持つ

子テーブルの外部キーを同じ子テーブルのプライマリキーとして作成しても問題ありません。

私はDBMSを通して自分のやり方で作業しています。これらのタイプのデザインについては、専門家の意見に感謝します。

長所と短所は何ですか?

+1

私は混乱しています。関係が1対多である場合、重複が存在するため、子表は親IDを親キーとして使用できません。子テーブルのプライマリキーに他のキーが含まれている場合、それをコンポジットにすると動作します。 –

答えて

6

親行が多くの子行にマップされている場合は、その行を実行できません。主キー値には一意のキー制約があります。同じ親を参照するために複数の子行が必要な場合は、同じ外部キー参照で複数の行を持つことができないため、外部キー参照を主キーとして設定すると、その行は許可されません。

+0

答えをよろしく!ボタンの右に!本当にありがとう!だから、反復するだけです。この種のデザインは、「アダム・ロビンソン」の説明によれば、1対1の関係の場合にのみ機能するだろうか? –

+1

@Jasdeep:正確には、1:0-1ではなく1:1です(両側を同時に作成する必要があるため、1対1の関係はデータベースには適用できません) –

4

これは、1:0-nではなく1:0-1の関係を作成します。子を親の主キーとして子に関連付ける外部キーを定義すると、複数の子を持つことができなくなります。同じ親キー。

関連する問題