「O/R マッピングの是非」に触発を受ける。PerlではClass:DBIやDBIx::Class, RubyではActiveRecordなど、今やO/Rマッパー全盛時代だ。確かに、開発効率や生産性について言えば、O/Rマッパーを使うとだいぶ楽な気がする。getter/setterを書かなくていいことに始まり、templateやvalidatorと強力に連携してあっという間にレコードのCRUDインターフェースを実現してしまう。 一方で、チューニングの余地がほとんどない、安易なテーブル設計に流れがち、トラブル時のデバッグが面倒、などの点がデメリットとして挙げられる。 DB設計の肝は、ディスクアクセスをいかに減らすかにある。シーク効率のために固定長レコードを指向し、テーブルを正規化して分離し、個々のテーブルサイズは抑え、必要なものだけjoinする。これが従来からの常識だ。 ところが、さまざまな