FuelPHPやってると、SQLどうやって書こうかなっって・・・毎回迷う。
参考サイトをいつもぐるぐる回遊しつつ公式を見ているので、それらをまとめました。
DBクラス
DB クラスは、データベースクエリの生成と実行および結果の取得を行います。
DB::query() で、直接SQL文を実行できるほか、
DB::select()などのクエリビルダも用意されてる。
CRUD
Model定義にもとづき、作成、読み取り、更新、削除を行う。
Modelクラスを用意するので、MVCの形に一歩近づく。
ORM
ORMはオブジェクト 関係マッピングの略です。
これは、2つのことを行います: オブジェクトにデータベースのテーブルの行をマップし、 それはあなたがそれらのオブジェクト間の関係を確立することができます。
それは Active Record パターンに従いますが、 他のシステムに影響も受けます。
制約やリレーションの定義も持てる。
Orm/Modelを拡張しているのであって、Model_Crudではないことに注意
そのほか、参考サイト
http://blog.a-way-out.net/blog/2014/07/09/fuelphp-database/
http://runble1.com/fuelphp-model-dbaccess/
結論
どれを選ぶか・・・私の場合は、SQLインジェクションとか、オーバーヘッドとかはともかく、
ソースの可読性が大事に思う。
開発チーム内でORMを使おう、と決まったら、できるだけORMを使おう。。。
どうしても複雑なSQL投げたかったり
欲しい結果が取れなかったりする(謎)ときに
DBクラスのクエリビルダを使うようにしています。