■21240 / ) |
Re[1]: DBのテーブル設計で、複合キーを使うか否か |
□投稿者/ はつね (802回)-(2008/06/27(Fri) 18:12:50)
|
■No21230 (nbmyou さん) に返信 > ++++++++++++++++++++++++ > 1.複数のカラムを主キーとする(複合キー) > 2.シーケンスで連番を振る「ID」カラムを用意し、それを主キーとする(人工キー) > 3.その他の方法 > ++++++++++++++++++++++++ > > 最近、途中から参加しはじめた開発プロジェクトのDB設計を見たところ、 > 複合キーが多用されていました。(6カラムで主キーを構成するなど) > 初めてDBを勉強した際に「できるだけ人工キーを使うべき」と聞いていたため、 > 違和感を覚え、質問させていただきました。
一概にはどれがいいとはいい切れません。 ・人口キーの場合、その連番をどう管理するか ・複合キーの項目で検索するのであれば、人口キー分が余計になるのではないか ・主キーに相当する複合キーが将来的に変わるようなことはないか ・外部参照制約を考えたときに、人口キーは適切か :
単純に「できるだけ人口キーを使うべき」のような「べき」論で済んでしまうよう な簡単な話ではなく、色々検討が必要であると考えます。 よって、複合キーに違和感を覚えるのであれば、一時的に複合キー擁護派に思考を チェンジしてどのような利点や特性、欠点があるかを別の立場で考えるなどして、 今の思考方向とバランスをとってみても良いかと思えます。
|
|