新春連載企画: O/R Mapper についてかんがえてみた その1
あけましておめでとうございます。正月早々、O/R Mapper についてかんがえてみたことについて、ちょっとだけかいてみます。
O/R Mapper は RDBMS の差異をうめるためのものではない
「O/R Mapper つかってるから RDBMS が MySQL から Pg になっても大丈夫!」というのはわりと幻想。まあえてして、ORM に由来しないところで、RDBMS に依存してしまったりしますし、たとえば ORM つかっていても Skinny は FOR UPDATE をサポートしているけれど、FOR UPDATE は、SQL 標準じゃない気がするので、サポートしてない RDBMS だとうごかなかったりしますね。
そもそも SQL 標準の範囲でやろうとおもうなら、SQL 標準にのっとった SQL を発行すればいいだけなので、ORM をつかう必要はありませんね。
で、また RDBMS を抽象化するというのは ORM の必須要件ではぜんぜんなく、たとえば Perl だと ORLite という adamk の ORM があるけど、あれは SQLite に特化していて、それ以外のものはまったく無視しております。