最近「UMLによる一気通貫DBシステム設計」という本を読み始めました。
14章の「ライトウェイトフレームワークの為のDB設計(前編)」で
ナチュラルキー型とサロゲートキー型の特徴が載っております。
「O/Rインピーダンスミスマッチ」の解消にはサロゲートキー型がよいとの事。
しかしながら、ナチュラルキー型も捨てがたい。
昔々、データベースなんか使う前、サロゲートキー型的な手法で
内部キー、外部キーを使っていました。
内部キー = サロゲートキー
外部キー = ユーザーから見えるコード(商品コードなど)
その時も、おおすげえ!後から商品コードが変更できちゃう。と思っていましたが
DBMS以降、すっかりナチュラルキーばっかりで作っていたから、ついついナチュラルキーになってまう。