300px-ZendFramework-Logo

EX001 – Como usar Zend_Db_Table Relationships

Introdução

O conceito básico do relacionamento entre os objetos de dados (objetos extendidos de Zend_Db_Table_Abstract)
é o cascateamento de operações como SELECT, UPDATE e DELETE .

Consulte:

Objetivo

Criar um setor de uma empresa, que possa ter vários funcionários relacionados com ele (um para muitos).

Condições

Quando selecionar o setor, mostrar os seus funcionários, sem usar SELECT em tb_funcionarios, tentar usar o relacionamento para apresenta-los.
Quando um setor for apagado, fazer com que o sistema apague todos os funcionários ralacionados.

Solução

Relacionamento

Primeiro iremos criar as referências entre as objetos de dados chamados DoSetor e DoFuncionario.

Na classe DoSetor inserimos a sua dependencia com o DoFuncionario, usando o parametro $_dependentTables.

arquivo: DoSetor.php

Na classe DoFuncionario use o parametro $_referenceMap, passando um array com o nome da referencia as colunas(no caso cd_setor) e as operações permitidas (onDelete e onUpdate como self::CASCADE).

arquivo: DoFuncionario.php

Exibição dos Dados

Quando a consulta é pelo o objeto dependente usa-se doObjeto->FindParentRow(“nome_obj_relacao”), no nosso caso seleciona-se o
Funcionário e depois procura-se o seu Setor.
Quando é o objeto que possue dependentes usa-se doObjeto->findDoObjeto_Dependente, no nosso caso coloa-se o Funcionário
como parametro na chamada do método.

arquivo Ex0001Controller.php

Excluindo Registro

Ao apagar um setor, apaga-se todos os funcionários relacionados.

arquivo Ex0001Controller.php

Conclusão

A vantagem de usar este tipo de dependência é o fato de não se preocupar com a integridade dos dados, e dexando a responsabilidade para o ZF.
Quando ocorrerem relacionamentos mais complexos, estas referências facilitam a implementação das regras de negócio.

2 thoughts on “EX001 – Como usar Zend_Db_Table Relationships

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *