Torqueを使わないように・・・・・できるかな?
最近、色々考えてTorqueの分かりやすいモデル(TABLE、COLUMN、INDEX、FOREIGN-KEY、UNIQUE)だけでは、ちょっと足らなくなってきたかなーなんて思って、モデルを全面改装しようかなと思い始めました。
例えば、比較的大きなテーブルの中にはカラムの幾つかまとめて、意味のある場合があったりします。例えば住所(郵便番号、都道府県、市町村、番地・・・)とか、名前(姓と名、それぞれ漢字とカナ名)とか。
こういうものにビジネスロジックを書きたい場合、それらが属するテーブルに対応するクラスに書くとなると、そのクラスがやたらと大きくなってしまうので、やっぱり「住所」や「名前」に対応するクラスが欲しいところです。
というわけで、
Table <>------ Column
という構造ではなく、
Table <>------- TableItem
TableItem <|-------- Column
TableItem <|-------- ColumnGroup
ColumnGroup <>------- TableItem
というようなCompositeパターンにした方がより便利に使うことが出来るかもしれません。もちろん元の
Table <>------ Column
とぃうインタフェースも残さないと不便ですが。
現在はTorqueのモデルをそれぞれ継承したモデルのクラスを使っているので、Templateはそのまま使えているんですけど、独自モデルにしたら使えなくなるよなー・・・・・。クラスの生成の部分は良いけど、DBの部分のテストが面倒なのでやる気ダウン。
でもま、古いモデルと互換性があるようにしないと、使うのも面倒になっちゃうもんね。結局Torqueのtemplateを使うので、コード生成部分はTorqueと完全に切り離せないっつうことですな。徐々に離れてる感じだけど。
今のお仕事が暇になったらやろうかしら。