企業コードや社員コードなどの意味のある(?)コードを主キーにする方法。
例えば、企業マスタ、社員マスタ、日報テーブルがあった場合。
デメリット
- コード体系に変更があったとき影響が大きい
- 複合キーが冗長(と感じる)
システムでレコードを一意にするID(自動採番)を主キーにする方法。
例えば、企業マスタ、社員マスタ、日報テーブルがあった場合。
メリット
- コード体系の変更影響が少ない
- ORマッピングとの相性が良いらしい
どちらが良い?
個人的にはサロゲートキーが良いんじゃないかなと思います。
ちょっと複合キーが冗長に感じてて…
seasar勉強会のときひがさんも、新規に開発するならサロゲートキーが良いって言ってたしなぁ。
あと、サロゲートキー使う場合は企業番号とかはインデックス張る必要がありますね。
ナチュラルキーにするかサロゲートキーにするかは、どこまでDBに任せるかによるんのかなぁ。DBエンジニアの人は、そこはDBに任せろって感じで、コーディングする人からするといやプログラムに任せろって感じ。
上に書いたメリット・デメリットはあくまで個人的な意見です><