DBIx::Class::ProxyTable

前にhttp://d.hatena.ne.jp/nekokak/20070824/1187941930ってのをかきましたが
それをモジュール化してみた

http://coderepos.org/share/browser/lang/perl/DBIx-Class-ProxyTable

とりあえずMySQLSQLiteでつかえる(はずです

使い方

package Your::Schema;
use base 'DBIx::Class::Schema';
__PACKAGE__->load_classes(qw//);

package Your::Schema::Log;
use base 'DBIx::Class';

__PACKAGE__->load_components(qw/ProxyTable Core/);
__PACKAGE__->table('log');
__PACKAGE__->add_columns(qw/ id body /);
__PACKAGE__->set_primary_key('id');

1;

# in your script:
my $rs = $schema->resultset('Log');
$rs->proxy('log2')->create({id => 1, body => 'hoge'});
# insert data for log2 table
my $log2 = $rs->proxy('log2')->single({id => 1});

とりあえずこんな感じ。

logテーブルをベースにSchemaを作っておいて
log2テーブルとかlog3テーブルとか構造が同じテーブルを
logテーブル一個のSchemaで操作する感じ。
Schmea一杯つくらなくてもいいし、テーブルも自動で作るから
log周りにいいんじゃまいかと。

インタフェースはちょっとへんてこな気がするのでご意見もとむ。

そしてSYNOPSIS間違ってるのに気づいた