なぜ私はID派なのか

今までいっしょに仕事した人とこの話題については結構話したけど、プログラマはID派に好意的(確実に開発は楽になるし、オブジェクト指向との相性もいいので理解しやすいし、変更にも強いわけだから当然と言えば当然)。逆にばりばりのモデラーは理解できないというような顔をすることが多い。開発よりの運用の人は変更に強いID派に当然好意的、オペレータよりの運用はテーブルの中身を見るのにいちいちJoinしなければならないのはめんどくさい、あるいはスキルが低いなどの理由で複合主キー派の方がいいみたい。

私の場合、前職ではいくつかのシステムで要件定義から運用までやって経験から言えば、ID付与方式の方がよいと思っていたし、はぶ先生の本を読む前に同じ結論に至っていたりする(ちょっと自慢)。

とは言っても、前職はとあるグループ企業の情報システム部門みたいな会社で、とんでもなく仕様変更の多いグループだったので例外的かも。三ヶ月に一回くらい組織構造が変わるは、突然従来と異なる組織階層ができあがるは、数年で社員数が倍増するは、兼務の数も半端じゃないうえ異動も激しいし(兼務が激しいと同じ人が複数の違うグループ会社で役職をもっていて、ひとつのシステム内で全部の情報をいっぺんに見たいみたいな要望もでてきたりする)。そういう場所だと、ID方式じゃないと結構死ねます。「二週間後に社員コード体系(数値→英数+桁数アップ)が変わるんで対応よろしく」とか。実際にはすべてのシステムが複合主キー方式だったので担当者は結構死んでました(w

というわけで、とてつもなく仕様変更の激しい企業ではID方式をお勧めします(ww

問題は成熟した企業なら複合主キーの方がわかりやすいだろうなぁ、と思うこともあり強くは主張できるほど立場が固まってないのが現状なので、いろんな人の意見を読んで頭の中を整理中ではあるのですが。