DBを設計する際に、IDというカラムは必須なのですか?

IDがないDBをみたことが無いのですがこれには何か理由があるのですか?
あとIDをintではなくbigintにしたときの注意点は何かあるでしょうか?(なければないでも大丈夫です)

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/02/01 09:37:54

ベストアンサー

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

IDは不要です。
必要な項目のみカラムにすればいいだけです。

普通は DBの設計をするときに 番号を使いますが
これが IDみたいなものです。

たとえば 会員番号とか社員番号とか わかりやすい名前にするのであって
これを IDとかにしたりは しません。

IDなんてしても なんのことか わかりにくいですからね。
そして その会員番号とか社員番号が ユニークになるようにします。

よく見かけるというのは どういうものでしょうか?
このような 会員番号とか社員番号とは別にIDが 設けられているのでしょうか?

その他の回答2件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198ここでベストアンサー

IDは不要です。
必要な項目のみカラムにすればいいだけです。

普通は DBの設計をするときに 番号を使いますが
これが IDみたいなものです。

たとえば 会員番号とか社員番号とか わかりやすい名前にするのであって
これを IDとかにしたりは しません。

IDなんてしても なんのことか わかりにくいですからね。
そして その会員番号とか社員番号が ユニークになるようにします。

よく見かけるというのは どういうものでしょうか?
このような 会員番号とか社員番号とは別にIDが 設けられているのでしょうか?

id:windofjuly No.2

回答回数2625ベストアンサー獲得回数1149

リレーショナルデータベースにおいては、
レコードをユニークにするためにIDを付けます。

IDがなくてもレコードを特定できるカラムがあるならば、
IDは付けなくても良いのですが、習慣的に付ける人もいます。

IDという名前でなくても良いのですが、
IDであれば誰が見てもカラムの意味を理解できるのでIDを慣例的に使ってます。

プライマリキーが複合キーになってしまう場合に、
利便性・処理速度の面で別途IDを付加するというチューニングを行うこともあります。

うだうだと書きましたが端的にまとめると、
「ID列の存在で使い勝手が向上する場合が多い」というのが一番の理由です。

id:wild_yamato No.3

回答回数224ベストアンサー獲得回数45

 レコードを一意に特定するためにIDがあります。
 カラムとしてレコードを特定できたとしても、実データですので将来的に特定できなくなる場合が考えられます。
 レコードを特定する主Keyは論理的であり、これに対しIDは物理的なものと考えるのが良いでしょう。
 記憶媒体が高価であった昔は、データ量を削減するためにIDを設けないことが有りました。現在は、そのようなことはありませんのでIDを設けておくべきです。

 尚、タイプは設計の件数が格納できることが前提ですが、システムの推奨するタイプを使用することが賢明です。一般的にバージョンアップ等の改変で考慮がほぼ不要となりますので。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません