こんにちは、未だ勉強中のhachi8833です。 最近読んだ「楽々ERDレッスン (CodeZine BOOKS) 」という本は、Railsとは特に関係ない一般的なテーブル設計の解説ですが、データベースの教科書と現実の設計の間を埋めてくれる実践的な記述で、今の自分にとっては有用な本でした。Railsから入門して間もない人にはきっと有用だと思います。なおこの本が出版された2006年にはRailsはまだ1.0でしたが、現在も版を重ねているようです。さりげなく文章の質がよく非常に読みやすいのがありがたい点です。 同書で繰り返し言及されていたのが、「顧客番号のようなコード番号をテーブルの主キーにしないこと」「主キーには、それ自体は意味を持たないアイデンティファイア(識別子)を使い、外部キーとして参照すること」というものでした。ほんの一瞬COBOLerだった頃の遠い記憶がほんのりと蘇ってまいりました
![代理キーとナチュラルキー|TechRacho by BPS株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/7b04473e8aa8df2baf3fa07c7889086794b1eb4f/height=288;version=1;width=512/https%3A%2F%2Ftechracho.bpsinc.jp%2Fwp-content%2Fuploads%2F2014%2F01%2Fdatabase_eyecatch.png)