Class::DBI::Loader::Relationship - Easier relationship specification in CDBI::L
use Class::DBI::Loader::Relationship; my $loader = Class::DBI::Loader->new( dsn => "mysql:beerdb", namespace => "BeerDB");
Now instead of saying
BeerDB::Brewery->has_many(beers => "BeerDB::Beer"); BeerDB::Beer->has_a(brewery => "BeerDB::Brewery"); BeerDB::Handpump->has_a(beer => "BeerDB::Beer"); BeerDB::Handpump->has_a(pub => "BeerDB::Pub"); BeerDB::Pub->has_many(beers => [ BeerDB::Handpump => 'beer' ]); BeerDB::Beer->has_many(pubs => [ BeerDB::Handpump => 'pub' ]);
Just say
$loader->relationship( "a brewery produces beers" ); $loader->relationship( "a pub has beers on handpumps" );
This module acts as a mix-in, adding the relationship method to Class::DBI::Loader. Since Class::DBI::Loader knows how to map between table names and class names, there ought to be no need to replicate the names.
relationship
Class::DBI::Loader
In addition, it is common (but not universal) to want reverse relationships defined for has-many relationships, and for has-a relationships to be defined for the linkages surrounding a many-to-many table.
The aim of CDBIL::Relationship is to simplify the declaration of common database relationships by providing both of these features.
CDBIL::Relationship
The relationship takes a string. It recognises table names (singular or plural, for convenience) and extracts them from the "sentence".
Simon Cozens, simon@cpan.org
simon@cpan.org
Class::DBI::Loader.
To install Class::DBI::Loader::Relationship, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Class::DBI::Loader::Relationship
CPAN shell
perl -MCPAN -e shell install Class::DBI::Loader::Relationship
For more information on module installation, please visit the detailed CPAN module installation guide.