Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

itepi

Tabela padrão de endereço

Recommended Posts

Boa noite pessoal,

 

Resolvi criar uma tabela com todos os dados de um endereço, a tabela tb_endereco(logradouro, numero, município, bairro, uf, cep, complemento, etc).

 

Há diversas outras tabelas que se relacionam com esta a tb_endereco como por exemplo: 'tb_fornecedor', 'tb_cliente', 'tb_funcionario', entre outros.

 

O fluxo normal para adicionar um cliente por exemplo é : inserir o endereço, pegar o id gerado e após isso salvar o cliente relacionando-o com o id que armazei.

 

Porém também preciso fazer com que quando eu exclua o cliente exclua automaticamente o endereço, para isso precisaria colocar uma chave estrangeira na tabela endereço para cada tabela com a qual se relaciona. Porém com isso para inserir um endereço ele precisa estar contido nas diversas tabelas com a qual se relacionava, impedindo que eu adicione primeiro o endereço. Mas não posso adicionar o cliente antes pois nao tenho o codigo do endereço pra relacionar na tabela cliente, se fosse assim precisaria inserir o cliente, inserir o endereço, depois fazer um update no cliente para adicionar o id do endereço gerado.

 

Alguém tem alguma solução para esse dilema?

 

Não sei se consegui me fazer entender.

 

Desde já agradeço a atenção.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria preciso tabela do tipo

 

cliente---<cliente_endereco>---enderecos
fornecedor---<fornecedor_endereco>---enderecos
funcionario---<funcionario_endereco>---enderecos

 

Haveria duas hipóteses, a exclusão de um endereço na opção do cliente (ele não quer mais receber ali), ou

a exclusão do endereço em si (o cliente mudou), na primeira hipótese dançaria cliente_endereco, na segunda

enderecos.

 

Existem opções nos BDS de ON DELETE CASCADE/set null etc que seriam úteis nestes casos, mas a melhor opção

é deixar o usuário do Sistema gerenciar que dados que manter no deletar.

 

Esta modelagem tem uma vantagem pois na caso de um funcionário que seja também cliente um só registro de endereço seria necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.