[firebase-br] Chave estrangeira entre tabelas

Edson Marco edmafer em gmail.com
Seg Dez 12 09:51:27 -03 2011


Completando o que Daniel disse...

Quando se tem tabelas com muitos registros (entenda por muitos MILHÕES de
registros, 500 ou 600 mil são poucos registros) e há muitas consultas sobre
estas tabelas, pode sim furar esta regra, e criar o relacionamento direto
ao neto quando a consulta não depende do filho. Isto vai te dar um ganho de
desempenho considerável na consulta, mas vai aumentar a carga na
inserção/update pois tem mais campos e mais um índice para ser atualizado.

Quanto ao cascade tome cuidade, é muito bom, mas causa muito erro. A regra
básica é a seguinte: Se o registro da tabela B só pode existir se houver
registro na Tabela A então pode haver cascade.

Mas se por algum motivo você decidir relacionar B com outra tabela, ou
outra tabela relacionar com B, desative o cascade ou você vai ter sérios
problemas de consistência na sua base.

No seu caso se tu fizer cascade para filho e neto, tenha em mente que estes
registros serão eliminados junto com o registro pai. Se você relacionar
qualquer um deles com outra tabela, ou outra tabela relacionar eles você
irá ter alguns problemas.

[]'s

2011/12/12 Tecnobyte Informática <temp2 em tecnobyte.com.br>

> Olá Alysson
>
> A menos que você tenha razões suficientemente claras e bem fundamentadas,
> não vejo sentido em criar a relação PAI x NETO, visto que isto pode ser
> obtido com Pai x Filho e Filho x Neto. Alguém poderá dizer que fazendo a
> relação Pai x Neto diretamente você poderia dispensar um JOIN entre Filho e
> Neto para obter a relação Pai x Neto, mas ainda não vejo isto como razão
> suficiente para "desnormalizar" seu banco de dados.
>
> Atenciosamente.
>
> Daniel P. Guimarães
> Tecnobyte Informática
> www.tecnobyte.com.br
>
> -----Mensagem Original----- From: Alysson Gonçalves de Azevedo
> Sent: Saturday, December 10, 2011 5:17 PM
> To: FireBase
> Subject: [firebase-br] Chave estrangeira entre tabelas
>
> Saudações a todos!
>
> Depois de um longo tempo sem programar, estamos aqui novamente... ^^
>
> Pessoal, to com a seguinte duvida.
>
> Suponha que tenha as tabelas Pai, Filho e Neto.
> Naturalmente, criamos FK para as tabelas Pai x Filho e Filho x Neto.
> Ai entra a questão... criar uma FK entre Pai x Neto é bom, ruim ou
> indiferente?
>
> E se essas fk estiverem como cascade, ocorreria algum erro?
>
> Por enquanto é isso, valeu.
>
> Alysson Gonçalves de Azevedo
> (11) 8491-7730
>
> ______________________________**________________
> 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<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



-- 
/*
 * Edson Marco Ferrari Junior
 * edmafer em edmafer.com.br
 * http://www.edmafer.com.br
 */



Mais detalhes sobre a lista de discussão lista