skillup

技術ブログ

プログラミング全般

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

投稿日:

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

今までの参考リンク

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

サロゲートキーに関して

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

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

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

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

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

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

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

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

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

-プログラミング全般
-

執筆者:


comment

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

関連記事

no image

アプリケーション間のデータの連携方法に関して

以前やった「現場で役立つシステム設計の原則」を再読してます。 今、読んでいるのはアプリ間のデータ連携に関して。 複数のアプリ間でデータをやり取りする場合、以下のような方法が考えられます。 ファイルを直 …

no image

JavaScriptライブラリ sugar

去年、JavaScriptの仕事をがりがりやった時にお世話になったライブラリsugar。 JavaScriptのライブラリというとunderscore.jsが有名ですが、こいつも結構使えるライブラリで …

no image

障害報告などでの伝える情報の視点

障害の重要度(後続タスクにブロックがあるかいなか)、調査原因(仕様不理解、設計考慮もれ、ケアレスミス)、影響度(画面単位などで) 障害が起こっているデータ(あるいはスクショなどで伝えられるか) 再現プ …

no image

フレームワーク作成時の注意ポイント

以前も多分書いていますが、フレームワーク作成時のポイントなどを列挙。 次元が違うものも多々含まれているかも。 ルーティング機能 基本設定情報の読み込み キャッシュ機能 データベース Form情報の管理 …

no image

DIとDIコンテナについて再考

今までも何度かやったDI(Dependency Injection = 依存性の注入)について。 以前のリンク PHPにおけるDI スコープアノテーションとCDIについて Contents1 DIとは …