C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 41 を表示中)
■21240 / )  Re[1]: DBのテーブル設計で、複合キーを使うか否か
□投稿者/ はつね (802回)-(2008/06/27(Fri) 18:12:50)
はつね さんの Web サイト
No21230 (nbmyou さん) に返信
> ++++++++++++++++++++++++
> 1.複数のカラムを主キーとする(複合キー)
> 2.シーケンスで連番を振る「ID」カラムを用意し、それを主キーとする(人工キー)
> 3.その他の方法
> ++++++++++++++++++++++++
>
> 最近、途中から参加しはじめた開発プロジェクトのDB設計を見たところ、
> 複合キーが多用されていました。(6カラムで主キーを構成するなど)
> 初めてDBを勉強した際に「できるだけ人工キーを使うべき」と聞いていたため、
> 違和感を覚え、質問させていただきました。

一概にはどれがいいとはいい切れません。
・人口キーの場合、その連番をどう管理するか
・複合キーの項目で検索するのであれば、人口キー分が余計になるのではないか
・主キーに相当する複合キーが将来的に変わるようなことはないか
・外部参照制約を考えたときに、人口キーは適切か
    :

単純に「できるだけ人口キーを使うべき」のような「べき」論で済んでしまうよう
な簡単な話ではなく、色々検討が必要であると考えます。
よって、複合キーに違和感を覚えるのであれば、一時的に複合キー擁護派に思考を
チェンジしてどのような利点や特性、欠点があるかを別の立場で考えるなどして、
今の思考方向とバランスをとってみても良いかと思えます。

返信 編集キー/


管理者用

- Child Tree -