{ package MyApp::Schema::Result::League; # ... __PACKAGE__->has_many( league_teams => "MyApp::Schema::Result::LeagueTeam", "league" ); __PACKAGE__->many_to_many( teams => "league_teams", "team" ); # ... } { package MyApp::Schema::Result::Team; __PACKAGE__->has_many( league_teams => "MyApp::Schema::Result::LeagueTeam", "team" ); __PACKAGE__->many_to_many( leagues => "league_teams", "league" ); # ... } { package MyApp::Schema::Result::LeagueTeam; # ... __PACKAGE__->belongs_to( league => "MyApp::Schema::Result::League" ); __PACKAGE__->belongs_to( team => "MyApp::Schema::Result::Team" ); # ... }