小编Vic*_*scu的帖子

DBIx和Perl中的继承

我目前正在尝试使用DBIx实现以下方案:

产品包含"一般产品"和"捆绑产品"(捆绑产品是一般产品的集合):

package Product;
use base 'DBIx::Class::Core';
__PACKAGE__->table("products");
__PACKAGE__->add_columns(
  "productId",
  { data_type => "varchar", is_nullable => 0, size => 10},
  "name",
  { data_type => "varchar", is_nullable => 1, size => 150},
  "type",
  {
     data_type => "enum",
     default_value => "general",
     extra => {
       list => ["general", "bundle"],
     },
     is_nullable => 0,
  });
Run Code Online (Sandbox Code Playgroud)

如您所见,产品是一般产品,或捆绑产品保存在色谱柱类型中.

现在我想将这些信息封装在类标识中:我想要以下类:

  • 产品(type无所谓)
  • BundleProduct(type='bundle')
  • GeneralProduct(type='general')

我写:

package BundleProduct;
use base 'Product';

__PACKAGE__->resultset_attributes({ where => { …
Run Code Online (Sandbox Code Playgroud)

perl inheritance base isa dbix-class

7
推荐指数
1
解决办法
523
查看次数

标签 统计

base ×1

dbix-class ×1

inheritance ×1

isa ×1

perl ×1