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と完全に切り離せないっつうことですな。徐々に離れてる感じだけど。


今のお仕事が暇になったらやろうかしら。