[firebase-br] Para Carlos Cantu e demais

Daniel / Tecnobyte temp2 em tecnobyte.com.br
Sex Fev 22 17:47:54 -03 2008


Segue minha opinião...

Uso e abuso de CASCADE's, especificamente DELETE CASCADE, mas aprendi que 
para usar com segurança a chave primária NUNCA pode ser alterada. Por isto 
em tenho um campo "Id" em todas tabelas e o usuário não pode alterar este 
campo. Antigamente eu criava campo "Código" como chave primária e deixava o 
usuário alterar (código de produto, por exemplo) e fazia UPDATE CASCADE, mas 
uma vez ou outra em acabava com problemas.

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br

----- Original Message ----- 
From: "Denis" <denisrocha em hotmail.com>
To: <lista em firebase.com.br>
Sent: Friday, February 22, 2008 4:15 PM
Subject: Re: [firebase-br] Para Carlos Cantu e demais


> Engraçado. Eu nunca gostei de fazer deletes cascade tbm. Achava perigoso e 
> as vezes inoportuno. Sempre fazia os deletes em trigger, mas pensava que 
> era só eu, e que talvez era uma maneira meio errada de trabalhar com o 
> banco. Mas se o Cantu faz assim tbm, acho que não estou tão errado assim. 
> É bom saber que estava no caminho.
>
>
>
> "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br> escreveu na mensagem 
> news:234886916.20080222143541 em warmboot.com.br...
> Não costumo fazer cascade nas minhas FKs, e não tive tempo de testar o
> que vc falou, mas se realmente está acontecendo isso, imagino que o
> delete na tabela itens está ocorrendo num "after delete" da tabela
> pedido, portanto, o pedido não existe mais.
>
> Sugiro que vc não use cascade e faça o delete manualmente na tabela
> pai, no evento before delete da mesma.
>
> []s
> Cantu (Membro do TeamFB - FireBase)
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
>
> JD> Já mandei esse post antes, mas ninguém me respondeu, por favor me 
> ajudem !!!
>
> JD> Estou com uma dúvida sobre FK delete cascade, por favor, se puderem me
> JD> respondam:
>
> JD> Tenho PEDIDO e ITENS
> JD> em ITENS tenho a FK delete cascade = PEDIDOS
>
> JD> em ITENS tenho uma trigger Before Delete:
> JD> dentro dela preciso pegar alguns dados do PEDIDO, dando um select 
> antes da
> JD> exclusão
>
> JD> select DATA from PEDIDO where ID = old.ID;  aqui a está o problema !!!
> JD> nunca acho o Pedido aqui.
>
> JD> Pq? se estou no Before.
> JD> O cascade não teveria excluir os itens e depois excluir o pedido?
> JD> Parece q o pedido já foi excluído, antes dos itens.
>
> JD> Já agradeço a quem me ajudar.





Mais detalhes sobre a lista de discussão lista