0

我正在将应用程序从Class::DBI移植到DBIx::Class并且需要帮助。我有一个T带有主键 tid 的表和另一个ChildT将一行关联T到自身的多个(子)行的表T。如何设置和之间的关系TChildT以便我可以找到T. 以下是这两个表的精简版本:

T: (id, name);
ChildT: (rowid, tid, childid)

tid并且两者childid都引用.idT

谢谢!

4

1 回答 1

0

请不要投票我正在回答我自己的问题,希望其他人有同样的问题或可以帮助改进/纠正它 -

DBIx ::Class::Relationship文档清楚地解释了这一点。在 ChildT 类中定义使用外键的belongs_to关系:Tchildid

__PACKAGE__->belongs_to(parent => 'App::Schema::Result::T', 'childid');

在 T 类中定义与 ChildT 类的 has_many 和 many_to_many 关系:

__PACKAGE__->has_many(childrecords => 'App::Schema::Result::ChildT', 'tid');
__PACKAGE__->many_to_many(children => 'childrecords', 'parent');

$t->children给出了任何实例的所有子记录T

于 2010-10-31T12:30:46.970 回答