サロゲートキーについて
サロゲートキーとは業務上の意味を持たず、
内部でのみ主キーとして利用されるもので、
値はシステムによって自動で設定されるもの。
主キーとなるカラムの多くは業務コードであり、
この業務コードが往々にし変更が多い為、
その変更の影響を受けないようにサロゲートキーを主キーとするのが最近の流行らしい。
複数カラムで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のみでこのレコードにアクセスすることが出来る。
ふむ、こうしてみれば当たり前なことだね。
これからは複合主キーはサロゲートキーで!!