Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tchela

auto-increment

Recommended Posts

Se eu tiver no banco de dados uma tabela chamada "consulta" que conterá 1000 clientes devo usar auto-incremento na chave primária (cdConsulta) ou numeração manual? Fico na dúvia de usar auto incremento, pois esta tabela terá muitas inserções assim como muitas "deleções". Parece que vai ficar uma loucura os índices da chave primária. Pior se eu tiver que consultar uma consulta pela chave. Uso ou não chave com auto incremento?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode usar o incremento automático, é menos controle na programação, mais fácil para você.Quanto ao fato de "sempre" estar excluindo registros, é meio complicado, pois o "correto" é cada vez que você excluir um cliente, excluir também os registros de outras tabelas que se relacionam com ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas a minha preocupação é em relação a numeração com auto incremento, pois após algumas deleções e inserções a numeração fica cheia de "buracos"! Neste caso em uma consulta pelo código do cliente seria como jogar numa loteria.Quanto ao fato de "sempre" estar excluindo registros, é meio complicado, pois o "correto" é cada vez que você excluir um cliente, excluir também os registros de outras tabelas que se relacionam com ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que eu faço é o seguinte ... quando um registro é EXCLUÍDO, obviamente aquele código deixa de existir na minha Base De Dados.

Eu utilizo parâmetros para cadastro, e um deles é a reutilização do código, caso o cliente aceite esta opção, eu não utilizo o auto-increment, o que eu faço é percorrer o banco à procura do primeiro registro "em branco". vou de 1 até o último, e o primeiro valor que ele não encontrar, vai ser o qual será o código a ser inserido no banco.

 

porque eu deixo como opção??? fica óbvio que quando o número de registros aumentam, esta rotina vai ficando cada vez mais lenta. por isso eu deixo à critério do usuário podendo a qualquer momento desabilitar esta rotina!!

 

até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oq eu vou dizer pode parecer meio idiota, mas, qual o objetivo de se excluir dados?

 

Veja bem, com exceção de sistema muito simples, não faz sentido excluir, principalmente se este dado for de cliente ou, outro exemplo, produtos. Vamos supor que este cliente fez uma compra, numa data qualquer, ou uma determinada operação, se futuramente decidir-se por tirar um relatório o qual o dado daquele, ou de vários outros, se fizerem necessários??? Ou até mesmo o histórico de transações, ou uma mala direta, ou seja lá qual for o negócio desta empresa... os dados não farão sentido, assim como a relação entre as suas informações. Então, djabo é?!?! Não vou apagar nenhum dado? Sim, vai apagar sim... por exemplo, TELEFONE_CLIENTE, se o cliente não tem mais aquele número, acho que vai ser pouco provavel que ele o tenha novamente... mesmo assim isto pode ser questionável, dependendo do negócio da empresa, se for uma companhia telefonica esta informação pode ser muito útil.

 

Um banco de dados existe para manter as informações, não para que elas sejam excluidas. Claro, tudo dependendo da importância dada a tais informações, como eu já comentei.

 

O que eu sugiro é que você adicione um campo para manter o histórico, algo como um DATA_EXCLUSAO, os que tiverem data, forma excluidos, e aqueles que estiverem NULO, estão ativos no sistema.

 

Outra coisa, uma pesquina geralmente não se faz por código, não ser que seja uma informação que possa ser recuperada facilmente, por exemplo: COD_CHAMADO, NUM_NOTA_FISCAL... no mais, se tratando de pessoas, você vai realizar pesquisas por informações que você conhece da mesma, algo como NOME_CLIENTE, NUM_CPF, DATA_NASCIMENTO, etc.

 

O indice de auto_incremento seria usado para criar o relacionamento entre as demais tabelas, se não existirem as demais, não faz sentido haver um código, muito menos auto_incremento... você pode criar outra chave primária se for o caso, como o NUM_CPF.

 

ps.: é apenas uma sugestão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.