[Cascavel-pm] Exemplo de relacao many-to-many com Class::DBI

Rod Za rodzadra em yahoo.com
Segunda Abril 11 06:27:31 PDT 2005


Olá de novo,

Descobri o porq da relação não estar funcionando. Na tabela relationship foi necessario declarar
explicitamente os campos id_user e id_group como chave primária (no banco de dados e na classe).

Sendo assim a classe dbRelationship fica assim:

> package dbRelationship;
> use lib '/home/rodza/perl_tests';
> use base 'dbBase';
> dbRelationship->table('relationship');
+ dbRelationship->columns( Primary => qw/id_user id_group/ );
> dbRelationship->has_a( id_group => dbGroup );
> dbRelationship->has_a( id_user => dbUser );
> dbRelationship->has_many( history => dbHistory => 'id_user' );

E foi necessário também acrescentar a relação na tabela dbGroup:

> package dbGroup;
> use lib '/home/rodza/perl_tests';
> use base 'dbBase';
> dbGroup->table('groups');
> dbGroup->columns( All => qw/id_group group_name/ );
+ dbGroup->has_many( users => [dbRelationship => 'id_user'] => 'id_group' );

Desta forma eu consegui acessar todos os grupos do usuário e todos os usuários do grupo. 

Só tenho uma dúvida agora. Para eu acessar o histórico de cada usuário e/ou grupo, onde seria
melhor fazer a relação com a tabela dbHistory (através das tabelas dbUsers e dbGroups ou através
da tabela dbRelationship?)


de novo muito obrigado,

Rodrigo Zadra.



		
__________________________________ 
Do you Yahoo!? 
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/


Mais detalhes sobre a lista de discussão Cascavel-pm