[firebase-br] RES: Como fazer um UPDATE com uma condição

Zé Luiz zeluizdala em terra.com.br
Dom Out 26 22:19:05 -03 2008


Ok Eduardo, agradeço as suas considerações que sempre serão bem vindas. Dá 
forma que vc colocou me fez entender melhor essa questão de chaves 
primárias.

Muito Obrigado. VOu fazer alguns testes aqui para ver o que consigo.


----- Original Message ----- 
From: "Eduardo Bahiense" <eduardo em icontroller.com.br>
To: <lista em firebase.com.br>
Sent: Sunday, October 26, 2008 9:38 PM
Subject: Re: [firebase-br] RES: Como fazer um UPDATE com uma condição


> Agradeço a ajuda ai, só tenho ? uma dúvida :
> Para funcionar essa Procedure precisa que se tenha um índice primário?
> Eu preciso que todos os campos tenham informações repetidas.


Olá Zé

Como você se diz iniciante, vou me permitir umas considerações.

1. Dificilmente uma informação utilizada em qualquer processo não possui
um conjunto de atributos que garantam a unicidade de um registro (chave
primária)

2. Lembre que uma chave primária pode ser composta, ou seja, a união de
dois ou mais campos causam a unicidade. Exemplo: Existem cidades com o
mesmo nome - Palmas no Paraná e Palmas em Tocantins - mas se colocarmos
a UF na parada, PR - Palmas é diferente de TO - Palmas, se isso não for
suficiente, certamente o CEP da cidade acabará de completar a regra.

3. Se você tem uma tabela que não possui um índice primário, como você
manteria esta tabela com updates e deletes? Tipo se você tem vários
campos que são identicos entre si, sem um conjunto de atributos que os
distinguam, se você fizer um DELETE FROM TABELA WHERE <condição>, pode
afetar mais de um registro. Percebe aqui a importância de uma chave
primária?

4. Se realmente as informações que essa tabela armazena não possui um
conjunto que dê unicidade, a coisa fica ainda mais fácil, você cria um
campo alimentado por um generator/trigger e o usa exclusivamente como
atributo primário da tabela, de forma que você possa agora trabalhar
"direito".

5. O trabalhar "direito" acima é porque, até onde eu consigo alcançar,
uma tabela sem chave primária não poderia fazer parte de nenhum processo
principal, se prestaria apenas a processos auxiliares, e olhe lá. Não
acredito realmente que exista algum banco de dados bem modelado que
prescinda de identificação primária em qualquer tabela. Isso é
indispensável aos relacionamentos e esses bancos são ditos "relacionais".

Claro que toda regra tem exceção, e lógica, cada um tem a sua que, no
final, acaba dando certo. Então, tenha isso como uma opinião de quem
está na estrada há mais tempo, e não como algo absoluto.


Abraço


Eduardo


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista