[firebase-br] Dica.: Incluir ou não um FK na tabela?

Mário Reis mariodosreyx em gmail.com
Seg Mar 2 12:01:23 -03 2009


Sim decididamente. No entanto se tem alguma situação, daquelas que acontecem
quando temos de passar dados
antigos incoerente e em tempo util não é possível po-los coerente em em
alternativa poderá criar:

1. - ALTER TABLE PRECARIO ADD CONSTRAINT CHK_PRECARIO_VAL CHECK (PROD_ID
IN(SELECT PROD_ID FROM PRODUTOS)); mas, não irá funcionar pq V/tem dados
antigos incoerentes  que são validados aquando da contrução da CHECK.


Agora, não sei se percebi bem mas creio que é esta a solução(abaixo) que
V/necessita!

2. Uma trigger Before Insert/Update

New_Var=New.MeuCampo_a_Referenciar
SELECT PROD_ID FROM PRODUTOS
WHERE PROD_ID=:NEW_VAR1 INTO :NEW_VAR;

IF(NEW_VAR IS NULL) THEN
  Exception STOP 'Não existe esse produto:'||New_Var||' na tabela de
referência...'

Sendo que isto só garante a integridade dos Novos. Os dados velhos terão de
ir sendo corrigidos em cada Upadate

Espero ter ajudado.



2009/3/2 Gustavo Moda <gustavo.moda em gmail.com>

> Sempre criar..
>
> Bom banco de dados tem os relacionamentos criados.
> ______________________________________________
> 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
>



-- 

C/Melhores cumprimentos
Mário Agostinho Reis



Mais detalhes sobre a lista de discussão lista