業務上のコードと、システム上のデータIDは分離すべし

楽々ERDレッスン』を読んだ。


業務システムを想定したあくまで実践的な本でよかった。メッセージはシンプルで2点だけ。


1、IDを導入して、業務の管理用のあだ名・アクセスパス・ある意味でUIとも言えるコード体系と、データの識別子(ID)を分離し、IDをテーブルの主キーとする。

コードを主キーにして、複合キー地獄になったり、キー項目がまさかの変更になって影響範囲がでかすぎたりと苦しんでいるので、まさに!って感じだった。ここだけでも読むべき!実際、会社変わったら固定資産番号とかあっさり変わる…


2、ビジネス上の正規化について。項目名が同じでも意味が違うことは往々にしてあるから、しっかり業務の視点で正規化しましょうって話。"One fact in One Place"は、factが違えば当然別の箱を用意しなければならない。

これは難しい。ある情報がその時点のスナップショットなのか、参照なのか(相手が変われば洗い替えられるのか)は、ユーザ側もしっかり意識してないことが多い。おれは為替レートが変動することに死にました。これはいつの為替レートを適用するんだよ!!っていう。