1

我有一个包含许多表的数据库,这些表的结构相同并具有相同的列名。

表格1
col1
col2
col3

表 2
col1
col2
col3

等等。

我正在尝试学习如何在这种类型的设置中使用 DBIx::Class 和 Catalyst。

通常我有一个像这样的子程序:

sub query{
my($table) = @_;
$sql = "SELECT col1 FROM $table;";
$qh=$connect->prepare($sql) or die print $DBI::errstr;
$qh->execute() or die print $DBI::errstr;
}

...得到结果等等

我可以想到如何从控制器中做到这一点。

my $table = "DB::Table1";
my $result = $c->model($table)->create({col1 => $col1, col2=>$col2});

没关系。但是如何编写结果和结果集呢?我不想写很多,在一个实例中,数十个 ResultSets 本质上是相同的,只是在不同的表上。

有没有办法编写一个将表作为参数并基于此进行查询的 ResultSet?我试图编写一个“全局”结果集,但得到一个错误,即没有具有该名称的结果。

是否可以通过这种设置使用 DBIx::Class?

提前致谢。

4

1 回答 1

0

我建议您编写一个 Moose 角色,将其应用于每个 ResultSet 类。

于 2012-09-04T13:55:49.810 回答