RES: [firebase-br] Indices compostos..

Jimi Roy Pugss jimi_roy em dew.com.br
Ter Mar 15 19:54:18 -03 2005


Acho que vc fez confusão entre PK (Primary Key) e FK(Foreign Key com Opção
ON DELETE CASCADE e ON UPDATE CASCADE) uma coisa naum tem nada a ver com a
outra, Auto incremento é bom, desde-que bem utilizado.

Jimi Roy
Developer World

> Existe outra questão com relação a PKs compostas ou únicas (com campo
> auto-incremento).
>
> Imagine que você tivesse as seguintes tabelas, todas com PKs
> auto-incremento.
>
> CLIENTE
> PEDIDO
> PEDIDO_ITEM
>
> Se por um acaso, sem querer, um usuário exclui um CLIENTE, o SGBD vai
> excluir todos os registros correspondentes nas tabelas PEDIDO e
> PEDIDO_ITEM.
> Então, o usuário entra em contato com você e informa o desastre, afim de
> que
> você (com seus super poderes de DBA) recupere os registros do backup.
>
> Neste momento, se você tiver as PKs definidas como campos auto-incremento,
> provavelmente terá dificuldades em restaurar os registros, mas, se você
> tem
> PKs compostas, a tarefa fica bem mais tranqüila.
> Neste exemplo usei apenas três tabelas, mas na realidade poderia envolver
> dezenas de tabelas, o que complicaria ainda mais a situação.
>
> Outra vantagem das chaves compostas, seria a facilidade "retirar"
> registros
> antigos da base, para armazenar em um banco de "arquivo morto", por
> exemplo.
> Isso imaginando um sistema que gere milhares de registros por mês, durante
> anos, a base tende a ficar inchada com registros que praticamente não
> seriam
> mais acessados. Nesse caso, seria boa prática realizar uma "enxugada" na
> base de produção para que ganhe performance nos backups, selects, etc...
> Com chaves compostas fica fácil retirar e retornar registros na base de
> dados.
>
> Espero ter ajudado
>
> Flavio Yamil
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> nome de Ivan
> Enviada em: segunda-feira, 14 de março de 2005 07:55
> Para: lista em firebase.com.br
> Assunto: Re: [firebase-br] Indices compostos..
>
> A minha professora tb disse que uma PK era necessaria, mas no mundo real
> a coisa é bem diferente...
>
>
>
> Francisco Thiago escreveu:
>> Puxa! Seis campos!
>>
>> E quantos campos tem a sua tabela?
>>
>>
>> E complicada esta questão de PK Lembro da minha professora de Análise
>> dizendo que os campos que fossem PK's deveriam identificar unicamente a
>> linha em toda a tabela... Pensando nisso, acho que num caso onde você já
>> tem uma chave auto-incremento, demais campos como PK seriam
>> desnecessários (oras, não vai repetir nunca!). Agora, PK são
>> programaticamente diferentes de unique keys... Uma diferença sutil
>> mas... (sendo redundante) que faz diferença
>>
>> Francisco Thiago de Almeida
>> Enter&Plug Informática
>> Divisão: Desenvolvimento e Banco de dados
>> MSN: thiago em enterplug.com.br
>>
>>
>> ----- Original Message ----- From: "Ivan"
>> <ich em via.com.br>
>> To: <lista em firebase.com.br>
>> Sent: Friday, March 11, 2005 12:51 PM
>> Subject: Re: [firebase-br] Indices compostos..
>>
>>
>>> Eu uso tabelas com até 6 campos no pk, é muito bom pra performance só
>>> da um pouco mais de trabalho pra implementar
>>>
>>> Fausto escreveu:
>>>
>>>> Bom dia..
>>>>
>>>> Estou com uma dúvida ref. a indices compostos no FB, pois tenho visto
>>>> que as opiniões divergem, uns dizem que não há problema, já outros
>>>> dizem para evitar ao máximo.
>>>>
>>>> Gostaria que os amigos opinassem tendo como exemplo uma tabela de
>>>> comissões onde entre outros campos temos:
>>>> NumeroVenda  (PK)
>>>> Numeroitem     (PK)  CodigoVendedor
>>>> DataMovto
>>>> CodigoProduto
>>>> ValordaVenda
>>>> ValorComissao
>>>>
>>>> Neste exemplo a PK já vai ser composta, pois a comissão esta no
>>>> produto, e para consultas teria um outro indice secundário que seria
>>>> o codigo do vendedor + a data do movto. Como vcs podem notar estou
>>>> meio perdido quanto a utilização de indices compostos, afinal de
>>>> contas esta técnica é segura?
>>>>
>>>> Fausto ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>> Para editar sua configuração na lista, use o endereço
>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>>
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>> Para editar sua configuração na lista, use o endereço
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>
>>
>>
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>





Mais detalhes sobre a lista de discussão lista