- ベストアンサー
1対1のリレーション(主キー同士)はどういった時に使うものなのでしょう
1対1のリレーション(主キー同士)はどういった時に使うものなのでしょうか? 意味が無いように思えるのですが、メリットやデメリットがあれば合わせて教えていただけないでしょうか? データベース初心者です。ご教授お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
主キーの完全な 1:1 は、ほとんど意味がないでしょうね。 主キーが同じテーブル同志なら、件数も同じになりますし、 そもそも分けるのでなく、同じテーブルにした方が いいぐらいです。 ただ、もしあるとしたら、用途として次のような感じでしょうか。 1. よく使う列だけ、または大きなデータ持つ列を分けて 別テーブルにしたい時。 2. 既存のテーブルに列を追加したいけど、なんらかの 理由で追加できなくて、やむなく別テーブルにする時。 3. 異なる DB 間でのテーブルの関係を記述する時。
その他の回答 (2)
- guttten
- ベストアンサー率38% (7/18)
他の方が回答なさっている通り正規化上は無意味ですね。 分ける理由としてもう一つだけ思いついたので回答させて頂きます。 ・1レコードの項目数が多すぎるとき 私の職場では、1キーに対するデータ数が多すぎて1レコードに入りきらないため、 ざっくりとした意味合いでテーブルを分割しています。 何となく違和感を感じますが、現実は理論通りにはいかないものですね(笑
- yambejp
- ベストアンサー率51% (3827/7415)
一般的な正規化としては意味がないと思います。 あとは組み合わせの問題。 テーブルAとテーブルBしかないなら一つでもいいですが テーブルA,B,C,D・・・とたくさんあって、検索の組み合わせが多様な場合は、 機能ごとにわけたテーブルがある方が便利でしょう。 また、権限としても、 テーブルAは営業部門、テーブルBは製造部門がメンテするなどのルールがある場合は 当然、わけていないと問題ですね まぁ考え出せばいろいろあると思いますよ