skillup

技術ブログ

プログラミング全般

サロゲートキーと主キーに関して

投稿日:

今までも何度か触れたサロゲートキーと主キーに関して。

今までの参考リンク

論理設計のグレーノウハウ サロゲートキー

サロゲートキーに関して

主にシステム設計的な考察が多かったので、今回はユースケースからの考察です。

業務システムだとやはりサロゲートキーはあるけれども、主キーとして使わないことがあるようです。

これは自分がユーザーの立場になればわかるのですが、

  • 学籍番号
  • 社員番号
  • 会員番号
  • ・・

などはSA00023などアルファベット+数字などの組み合わせが多いですよね。

これらのような意味を持たせた番号を主キーとして持たせることが一般的なようです。

ちなみにサロゲートキー自体もデータとしては持たせると何らかの時に、便利かと思います。

逆にレコードの識別がユーザー側で行わないような場合、はサロゲートキーを使った方がメリットが多いでしょう(ユーザー側から見てそのレコードを個別に認識する必要がない時、あるいはできない時)。

また上記のような意味を持たせた主キーも連番ですと推測されてしまい、セキュリティ的に危険という点から主に数字の部分を何らかのアルゴリズムを用いて推測不可能な値にすることもあるようです。

-プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

便利すぎる道具の弊害

現在、Javaのプロジェクトでは会社でNetbeansを使っていますが、IDEを使っているばっかりに理解できていないところがありました。便利すぎる道具の弊害ですね・・・ IDEについて一応説明をしてお …

no image

Excelでのテストデータ作り

ExcelVBAでテストデータを作るときに役に立った関数などを紹介させていただきます。 user_id time 2143 2017/1/16 3:35 6724 2017/1/2 6:05 4528 …

no image

オブジェクト指向設計 柔軟なインターフェイス

オブジェクト指向シリーズ。今回はインターフェイスについて。 インターフェイスといっても、implementsを使った実装だけではなく、要はあるクラスが外部の窓口となるときに使うメソッドってことだと思う …

no image

設定ファイルの置き場所

一般的にレベルの高いソースとは保守性が高いものを指します。特にWEB系ですと仕様変更がしょっちゅうなので変更があったときにいかに少ない工数で対応できるかが大切です。 保守性をあげる工夫はいろいろありま …

no image

データのシリアライズ

おととしにJavaをやったときにでてきましたがSessionに情報を格納するときにでてきたシリアライズについて。 セッションはステートフルな状態を実現するための便利なデータの保存方法ですが、値をオブジ …