1
resposta

[Sugestão] 08 Calculando automaticamente o ID do aluguel

Por que evitar VARCHAR para IDs?Embora o exemplo acima funcione, usar VARCHAR para IDs numéricos impede o uso eficiente de índices e pode causar erros de ordenação (ex: '10' vem antes de '2'). O ideal é alterar a coluna para INT e usar AUTO_INCREMENT.

1 resposta

Olá, Fábio. Como vai?

Sua observação é cirúrgica e extremamente relevante para quem está estudando bancos de dados! Esse é um erro clássico que pode comprometer seriamente a escalabilidade e a performance de uma aplicação no futuro.

Você tocou em dois pontos técnicos fundamentais:

  • Performance de Índices: O MySQL (e a maioria dos SGBDs) processa comparações numéricas muito mais rápido do que comparações de strings. Um índice em uma coluna INT é significativamente mais leve e performático do que em uma coluna VARCHAR.
  • Ordenação Lexicográfica: Como você bem exemplificou, o banco de dados ordena textos caractere por caractere. Por isso, em um VARCHAR, o valor '100' seria listado antes de '2', o que quebraria qualquer lógica de relatório ou paginação baseada em IDs.

Além do AUTO_INCREMENT que você sugeriu, o uso de tipos numéricos também garante a integridade dos dados, impedindo que caracteres acidentais (como espaços ou letras) sejam inseridos onde deveria haver apenas um identificador único.

Para quem está acompanhando o curso e quer seguir sua sugestão, o comando para alterar uma coluna existente seria algo como:

ALTER TABLE tabela_alugueis 
MODIFY COLUMN aluguel_id INT AUTO_INCREMENT;

Excelente contribuição para o fórum, Fábio! Trazer essa visão prática de arquitetura ajuda muito os outros alunos a evitarem "armadilhas" de desenvolvimento.

Espero que possa ter lhe ajudado!