Perl DBIX类-多个表的相同结果类

Perl DBIX类-多个表的相同结果类,perl,dbix-class,Perl,Dbix Class,我的数据库中有许多具有相同结构的表。我想为这组表创建一个公共结果类(包DBIx::class),并通过动态更改表名来为所有表使用相同的类 我该怎么做 编辑 在@abraxxa的回答的鼓舞下,我提出了同样的问题。 在我的数据库中,我为许多具有共同结构的客户提供了一组表。在创建了一组通用的结果类之后,我希望以以下方式为所有客户使用相同的结果类 客户1 表1 表B_1 表C_1 顾客 表 表b\N 表C\N 在处理客户N时,我希望管理tableA、tableB和tableC,以便维护它们之间的关系。比

我的数据库中有许多具有相同结构的表。我想为这组表创建一个公共结果类(包DBIx::class),并通过动态更改表名来为所有表使用相同的类

我该怎么做

编辑 在@abraxxa的回答的鼓舞下,我提出了同样的问题。 在我的数据库中,我为许多具有共同结构的客户提供了一组表。在创建了一组通用的结果类之后,我希望以以下方式为所有客户使用相同的结果类

客户1

表1 表B_1 表C_1

顾客

表 表b\N 表C\N

在处理客户N时,我希望管理tableA、tableB和tableC,以便维护它们之间的关系。比如,如果我从tableA中访问tableB,那么对于customer 1,它应该访问tableB_1,对于customer N,应该访问tableB_N


你能为tableA勾勒出一个基类,然后再为同一个基类勾勒出一个子类吗?

创建一个结果基类,只为每个现有的表创建一个子类

__PACKAGE__->table('tablename');
在每个子类中。
DBIx::Class仍然需要了解所有现有表,因为它们之间存在关系。

创建一个结果基类,并仅为每个现有表调用它的子类

__PACKAGE__->table('tablename');
在每个子类中。
DBIx::Class仍然需要了解所有现有表,因为它们之间存在关系。

创建一个结果基类,并仅为每个现有表调用它的子类

__PACKAGE__->table('tablename');
在每个子类中。
DBIx::Class仍然需要了解所有现有表,因为它们之间存在关系。

创建一个结果基类,并仅为每个现有表调用它的子类

__PACKAGE__->table('tablename');
在每个子类中。
DBIx::Class仍然需要了解所有现有表,因为它们之间存在关系。

我知道这艘船可能已经开航了,但是如果结构相同,为什么不为每个客户提供一个模式/数据库呢?然后使用
\uuuuu PACKAGE\uuuu->table('schema.table')
完全限定您的架构,并且可以进行跨架构连接(假设托管在同一服务器上)。常见的结果集和结果可以使用。@mikew我实际上是在一个接一个地揭露事实。所有这些表都在同一架构中,并且共享全局表。因此,tableA_1和tableA_2都使用相同类型的结构与全局_表连接。我知道这艘船可能已经航行,但如果结构相同,为什么不为每个客户提供一个模式/数据库呢?然后使用
\uuuuu PACKAGE\uuuu->table('schema.table')
完全限定您的架构,并且可以进行跨架构连接(假设托管在同一服务器上)。常见的结果集和结果可以使用。@mikew我实际上是在一个接一个地揭露事实。所有这些表都在同一架构中,并且共享全局表。因此,tableA_1和tableA_2都使用相同类型的结构与全局_表连接。我知道这艘船可能已经航行,但如果结构相同,为什么不为每个客户提供一个模式/数据库呢?然后使用
\uuuuu PACKAGE\uuuu->table('schema.table')
完全限定您的架构,并且可以进行跨架构连接(假设托管在同一服务器上)。常见的结果集和结果可以使用。@mikew我实际上是在一个接一个地揭露事实。所有这些表都在同一架构中,并且共享全局表。因此,tableA_1和tableA_2都使用相同类型的结构与全局_表连接。我知道这艘船可能已经航行,但如果结构相同,为什么不为每个客户提供一个模式/数据库呢?然后使用
\uuuuu PACKAGE\uuuu->table('schema.table')
完全限定您的架构,并且可以进行跨架构连接(假设托管在同一服务器上)。常见的结果集和结果可以使用。@mikew我实际上是在一个接一个地揭露事实。所有这些表都在同一架构中,并且共享全局表。因此,tableA_1和tableA_2都使用相同类型的结构与全局_表连接。