Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida UUID

Prezados,

Na aula 5 fora utilizada a bilioteca UUID a qual possui a função de gerar um ID único para as tarefas, agora pensando em uma aplicação onde não se pode haver IDs repetidos, quais as chances da biblioteca UUID gerar um ID repetido, e como contornar?

Grato,

2 respostas
solução!

Oi Wesley, tudo bem?

A probabilidade da biblioteca UUID gerar um ID repetido é extremamente baixa. Para ter uma ideia, a chance de gerar um UUIDv4 duplicado é tão pequena que é considerada insignificante para a maioria das aplicações práticas.

Para ilustrar, a versão 4 do UUID gera um número de 128 bits, o que significa que há 2 elevado à 128 (ou cerca de 3,4 x 10 elevado à 38) possíveis combinações. Mesmo que você gere um bilhão de UUIDs por segundo, levaria bilhões de anos para ter uma chance significativa de colisão.

No entanto, se você está desenvolvendo uma aplicação onde a duplicação de IDs é absolutamente inaceitável, você pode adotar algumas estratégias adicionais:

  • Verificação de Unicidade: Sempre que gerar um novo UUID, você pode verificar se ele já existe no seu banco de dados antes de usá-lo. Isso pode ser feito com uma consulta simples ao banco de dados.
  • Combinação de UUID com outros identificadores: em alguns casos, combinar o UUID com outro identificador único (como um timestamp ou um ID de sessão) pode adicionar uma camada extra de segurança contra colisões.
  • Utilização de outras versões do UUID: se a aleatoriedade não é suficiente, você pode considerar o uso de outras versões do UUID, como a versão 1, que inclui o timestamp e o endereço MAC da máquina, tornando a chance de colisão ainda menor.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito bom Rodrigo,

Sua explicação foi extremamente esclarecedora! pela resposta que você me deu entendo que as chances de isso acontecer são menores que a de um cidadão ganhar na loteria. Porém eu sou da corrente que entende que toda segurança ainda é pouco, então parto para validações adicionais de qualquer forma. Nesse sentido entendo que todas as opções para contornar citadas por você são extremamente coerentes, porém a segunda opção me chamou mais atenção, vez que mantenho o UUID na versão 4 e não preciso pesar o banco com mais consultas!

Muitíssimo obrigado!