The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::Class::Relationship - Inter-table relationships

SYNOPSIS

DESCRIPTION

This class handles relationships between the tables in your database model. It allows your to set up relationships, and to perform joins on searches.

This POD details only the convenience methods for setting up standard relationship types. For more information see ::Relationship::Base

METHODS

All convenience methods take a signature of the following format -

  __PACKAGE__>method_name('relname', 'Foreign::Class', $join?, $attrs?);
has_one
  my $f_obj = $obj->relname;

Creates a one-one relationship with another class; defaults to PK-PK for the join condition unless a condition is specified.

might_have
  my $f_obj = $obj->relname;

Creates an optional one-one relationship with another class; defaults to PK-PK for the join condition unless a condition is specified.

has_many
  my @f_obj = $obj->relname($cond?, $attrs?);
  my $f_result_set = $obj->relname($cond?, $attrs?);

  $obj->add_to_relname(\%col_data);

Creates a one-many relationship with another class;

belongs_to
  my $f_obj = $obj->relname;

  $obj->relname($new_f_obj);

Creates a relationship where we store the foreign class' PK; if $join is a column name instead of a condition that is assumed to be the FK, if not has_many assumes the FK is the relname is that is a column on the current class.

AUTHORS

Matt S. Trout <mst@shadowcatsystems.co.uk>

LICENSE

You may distribute this code under the same terms as Perl itself.