サロゲートキーについて

サロゲートキーとは業務上の意味を持たず、
内部でのみ主キーとして利用されるもので、
値はシステムによって自動で設定されるもの。

主キーとなるカラムの多くは業務コードであり、
この業務コードが往々にし変更が多い為、
その変更の影響を受けないようにサロゲートキーを主キーとするのが最近の流行らしい。

複数カラムで1つの主キーとする複合主キーの場合でもサロゲートキーを主キーとするのが良い。
そして元々、主キーだったカラムはユニークキー制約を付ける事で変更以前の仕様と変わらなくなる。

例)専門学校の授業の場合

学校マスタテーブル:S(新宿)、 I(池袋)
種類マスタテーブル:z(税理士)、k(会計士)
授業マスタテーブル:a1、a2
時間マスタテーブル:1(09:00〜10:00)、2(10:00〜11:00)

時間割テーブルを作成するに、
新宿で税理士のa2の授業を09:00〜11:00までの授業の場合は以下のようなレコードになる。
 S、z、k、a2、1


この場合全てが主キーとなるのだが、
サロゲートキーを主キーとし、他キーはユニーク制約のみとする。

1、S、z、k、a2、1←他はすべてユニークキー

時間割ID(自動連番)

これで時間割IDのみでこのレコードにアクセスすることが出来る。


ふむ、こうしてみれば当たり前なことだね。
これからは複合主キーはサロゲートキーで!!




http://sonic64.com/2005-01-07.html

http://qune.cside.com/archives/000724.html