2010年1月24日日曜日

Zend_Db_Table(その1)

Zend Frameworkに用意されているO/Rマッパー。

DBで定義しているテーブルに対して1対1で対応するZend_Db_Tableを継承するクラスを定義する。

hogehogeテーブル<=>hogehogeクラス

(コード例)
$hote=new Hoge_Table();

//主キーによる検索
$hoge->find("値");
//追加
$hoge->insert(array("列名1"=>"値","列名2"=>"値"));
//更新
$hoge->update(
 array("列名1"=>"値","列名2"=>"値"),
 $hoge->select()->where("列名=?"="値")
);
//削除
$hoge->delete($hoge->select()->where("列名=?"="値"));


主キーによる検索などは、Zend_Db_Tableに用意されているメソッドを使い、アプリケーションに必要処理だけコーディングすることで、シンプルなコードにできる。

Zen_Db_Tableの抽象化対象となるテーブルは、主キーとして、自動生成できるシーケンスを前提といる。
このため、DB設計をする際に、そのあたりを考慮しておくとコーディングが楽になる。
#そうでないテーブルも主キーに関する定義をすることで、当然対象にできる。

テーブル間のリレーションをクラス定義する際に、指定することで、検索結果などで取得できるZend_Db_Table_Rowクラスから関連するテーブルの情報を簡単に取得することもできる。

0 件のコメント: