我的数据库中有很多表具有相同的结构。我想为这组表创建一个公共结果类(包DBIx :: Class),并通过某种方式动态更改表名来为所有表使用相同的类。
我该怎么做?
修改 受到@abraxxa答案的鼓舞,我正在扩展同样的问题。 在我的数据库中,我为许多具有共同结构的客户提供了一组表。在创建了一组通用的结果类之后,我想以下列方式为所有客户使用相同的结果。
客户1
tableA_1 tableB_1 tableC_1
客户N
tableA_N tableB_N tableC_N
在处理客户N时,我想管理tableA,tableB和tableC,以便维护它们的关系。比如,如果我从tableA中访问tableB,那么对于客户1,它应该访问tableB_1,对于客户N,应该访问tableB_N。
您能否概述一下tableA的基类,然后概述一个类的子类。
答案 0 :(得分:3)
创建一个Result基类,并为每个只调用
的现有表创建子类__PACKAGE__->table('tablename');
在每个子类中。 由于它们之间的关系,DBIx :: Class仍然需要知道所有现有的表。