PUROGU LADESU

ポエムがメインのブログです。

ORマッパーなんか要らない

DjangoのORマッパーに四苦八苦していますが、そもそも必要ないんじゃないかという話。
もちろん単純なSELECTやfilter条件などを使うだけなら難しくもないけれど、
QとかFとかAnnotateとかどう考えたらいいのかわからない。

SQLを覚えたほうが早い

ORMのメリットとしてSQLを知らなくても良いみたいなのがあるようですが、
SQLを知らないならSQLを学習するほうが簡単だと思います。

汎用性がない

ORMはフレームワークが変わったらやり方が変わりますが、SQLはどのフレームワークでも使えます。
ORMの学習コストを考えればSQLを覚える方がコスパはいいかなあ。

結局SQLの知識が必要

複雑になればどういうSQLが発行されたのか確認する必要があると思います。
なので手順としては、
SQLを考える -> ORMでどう書くか調べる -> 結果としてのSQLを確認
みたいな感じになるため2度手間ですね。

ORMを知らなくてもフレームワークは使える。

結局データベースからデータをどう取るかという話です。
rawを使えばSQLを使えますし無理に学習する必要はなさそうです。
フレームワークを学習する場合にORマッパーは触りだけで良いと思います。

メリットがあるとすれば

データベースソフトに合わせて出力を変えてくれるというところでしょうか。(よく知らない)
ただDBが変わるなんて早々ないですし、変わったからORMに丸投げしてそのままリリースはできないでしょう。

確かに理解してしまえばドットだけでアクセスできるのは気持ちいいですし、最初はスゲエと思いました。
でもSQLをシコシコ書かなくていいのは楽といえば楽ですが、違うところでハマって時間食いそうな感じがしますね。

docs.djangoproject.com