Ir para conteúdo

POWERED BY:

Arquivado

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

adrianno

Questão do tamanho do campo para ID de uma tabela

Recommended Posts

Olá galera do imasters

Desenvolvi a um tempo um sistema de vendas ,

porem, teve uma boa aceitação e é usado por clientes que realizam muitas vendas diarias

 

minha duvida é seguinte, EXE: cada venda realizada gera um ID (VENDA_ID) e ainda, cada venda ou pedido

 

gera na tabela de produtos vendidos, 1 ID para cada produto do pedido

 

tipo, se a VENDA_ID 10530 foi feito a venda de 10 produtos nela, gera + 10 itens na tabela de itens relacionados a esta venda

 

suponha que seja feita 50 vendas no dia ou muito mais com 10 produtos cada já sao 500 registros gerados neste tempo, suponha isso em 365 dias, ou mais

 

onde quero chegar...

 

o campo ID destas tabelas esta em modo INT(11) suporta 11 caracteres, e em uma taxa de valores maxima estipuladas, estou usando MYSQL 5, chegará um momento que nao terá mais espaço neste campo

 

posso alterar o INT para BIGINT ??? suportaria mais que muito o dobro do que suporta o INT

mais seria correto?? causaria algum erro?

 

a aplicação é em Delphi, se eu alterar no banco de dados este campo, de INT para BIGINT daria algum erro, teria que alterar no codigo fonte ?

visto que os 2 são mesmo numericos eu acredito que não, mais queria uma opinião

 

 

segundo um análise cheguei ao resultado que

 

365 dias X 10 ( 10 anos = 3.650 dias ) realizando 200 vendas por dia

daria um total de 712.000 vendas

 

e se cada venda desta, tiver 50 itens cada:

712.000 X 50 = 35.600.000 registros na tabela de itens vendidos

 

acredito eu que pelo nivel de aplicação e usuarios, seria suciciente o INT(11) ao meu ver, mesmo porque 10 anos depois, se fosse realmente utilizado estes numeros, acredito que nao será, até neste momento teria uma outra aplicação já atualizada para oferecer

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo INT no MySQL suporta até o número 2.147.483.647, se você alterar a definição deste campo INT(11) para INT(11) UNSIGNED, sua aplicação Delphi não deve apresentar problemas e você vai dobrar a capacidade do campo, ou seja, vai "aguentar" até o número 4.294.967.295.

 

Se você alterar de INT para BIGINT pode ser que seja necessário alterar o binário do programa, mas isto tem que ser testado. O campo BIGINT UNSIGNED "aguenta" até o número 18.446.744.073.709.551.615.

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.