データベースのテーブルに一意の連続した数値型のキーを設ける場合に、どんな手法を取っていますか?


1.データベース付属機能のオートナンバー(自動採番)型を使用
2.上記1.以外のデータベース付属のシーケンス機能を使用(製品名:機能名:)
3.データベースを操作するプログラムに採番ロジックを実装
4.その他(具体的に何か)

回答の条件
  • 1人2回まで
  • 200 ptで終了
  • 登録:2007/09/10 14:27:06
  • 終了:2007/09/17 14:30:03

回答(2件)

ただいまのポイント : ポイント2 pt / 200 pt ツリー表示 | 新着順
Oracleなら huruyosi2007/09/12 02:05:47ポイント1pt
「一意の連続した」を何処まで許容するかで判断。Oracleを想定し てます。 欠番可であれば1.の方法。知っている範囲ですが、INSERTしたトランザクションをrollback。もしくはインスタンスの停止/起動でキャッシュされてい ...
SQLServerの場合、主キーにIDENTITYを設定しています naoki_ark2007/09/10 21:32:34ポイント1pt
連続した数値に拘るのであれば無理ですが、ワンクリックで設定できるから使っています。 一度困った時があったのですが、ユニットテストをしようと思い、NUnit NDBUnit を使いました。テストデータを挿入し、テストを実 ...
  • id:b-wind
    「連続した数値型」が必須条件であれば1,2は選べないと思う。
    たいていの RDBMS で連続性は保証されないから。
  • id:mikadeko
    コメントありがとうございます。
    たいていのRDBMS製品と言われているのがどれぐらいの規模なのかわかりませんが、例えば、Microsoft SQL Serverの場合、説明として「各テーブルには、テーブル内の各行を一意に識別する連続した値を格納する識別子列を 1 つ作成できます。」と記載されています。
    http://technet.microsoft.com/ja-jp/library/ms179413.aspx
    私の質問の文章レベルはこれぐらいでお考えください。もちろん、詳細な実装レベルではこうだから・・というツッコんだ回答も大歓迎ですので、ご遠慮なく回答頂ければありがたいです。
  • id:KUROX
    欠番が出来る場合もありますけど、大丈夫ですかという
    意味ですかね?
  • id:mikadeko
    コメントありがとうございます。
    欠番とおっしゃるのは採番時のお話でしょうか?
    そうではなく、レコード削除後の欠番のお話でしたら番号の振り直しや再利用等は別の問題と考えますので、無視して頂いて結構です。新規採番の時のみでお願いします。

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

トラックバック

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません