skillup

技術ブログ

プログラミング全般

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

投稿日:

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

今までの参考リンク

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

サロゲートキーに関して

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

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

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

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

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

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

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

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

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

-プログラミング全般
-

執筆者:


comment

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

関連記事

no image

シェル基礎2

シェルコマンド使い始めて数年たちますが、いまだに知らないことはおおいですし、早く知っとけばよかった的なこともたくさんあります。 そんな小ネタ集を alias よく使うコマンドを別名で登録することができ …

no image

コレクションの頻出処理に関して

PHPでコレクションを使っていますが、慣れると本当に便利ですね・・・まあforeachとかでグリグリやってもいいのですが、無駄にコードが長くなります。 自分がコレクションでよく使う再頻出のメソッドなど …

no image

変数の役割について

前回のエントリーの主眼は変数を置くことで、適切な情報量に分割し、コードを読みやすくしよう、ということでした。 今回はそれとは少し逆の観点でして、不要な変数を削除して、コードを読みやすくしよう、というこ …

no image

SESフリーランスエンジニアのメリデメ

私は現在、一応会社員なのですが、フリーランスに近い立場(案件選択可×単価連動SES)で働いております。 エンジニアの場合、フリーランスといってもエージェント経由でSESで現場に参画していると、決まった …

no image

気をつけたいトリガー系の処理など

実務でひやっとすることがあり、自分への戒めも込めてメモします。 Contents1 MySQLのcurrent_timestamp on update current_timestamp2 Larav …

アーカイブ