MOREActiveRecordの使い方2015.06.25皆様はじめまして。新入社員のプログラマの原です。入社してから2ヶ月が経ち、仕事には慣れてきましたがまだまだ学ぶことが多く、失敗しながら学んでいます。今回は、仕事で学んだActiveRecordを紹介しようと思います。■ActiveRecordって何?ActiveRecordを簡単に説明するとデータベースにアクセスして値を取得するためのインターフェイスの一つです。いわゆる、O/Rマッピングと呼ばれるもので、データベースとのやり取りを簡単にしてくれるものです。Controller)で言うところのM(Model)に相当するものになります。クラスとデータベースのテーブルは一対一の関係にあるため、アクセス先がどのテーブルなのかがわかりやすくなります。■ActiveRecordの構成ActiveRecordは、以下のような形に沿った動きをします。基本的にデータベースの1つのテーブルに対応します。このクラスのことをモデルとも呼びます。クラスの属性は、テーブルの各カラムに対応します。オブジェクトが、データベースの1レコードに対応します。各カラムの値は属性の値と同じになります。■ActiveRecordのメリット・デメリット一般にテーブルにアクセスするためには、SQL文を直接書かなくてはいけません。よって、常に修正漏れや修正間違いを意識しながら開発をおこなわなければなりません。この問題を解決するために開発されたのがO/Rマッピングと呼ばれるもでのであり、ActiveRecordはこの一つになります。SQLとActiveRecordの違いを見てみましょう。ActiveRecordでは、SQLとは違い、SELECT等を呼び出す時に毎回テーブル名を記述する必要がありません。SQLとActiveRecordでSELECTを指定した場合の処理ActiveRecordは、モデルクラスにある$table_nameにテーブル名を設定することでこの名前のテーブルから検索する仕組みになっています。データベースの種類によるSQL文の違いをライブラリが吸収してくれるので、特定データベースに合わせたアプリケーションコードを記述する必要がなくなり、依存を少なくすることができます。SQL文を直接書かなくてもいいとは言ったものの、パフォーマンスチューニングやデバックをおこなうときにはSQL文を書かないといけません。その他のデメリットとしては、モデルクラスの1オブジェクトが1つのレコードに対応するので、SELECTで全件取得など大量のレコードを取得する際はオブジェクトが大量に生成されるため管理が難しくなります。■ActiveRecordのFindersのオプションSQLのSELECTやWHEREと同じものが用意されています。下記のようなものがあります。ORDER※これ以外にも用意されています。■まとめActiveRecordは、SQL文の煩わしさを避けられ、データベーステーブルとの関係がわかりやすくなる便利なものです。ActiveRecordは、PHPやRubyなど向けにライブラリが用意されているので、すぐ導入することが出来ます。自分も使ってみて、理解しやすかったので、是非使ってみてください。採用情報クラウドクリエイティブスタジオでは、プログラマを募集しております。一緒に面白いゲームを作っていきましょう。