[Cascavel-pm] Tempo com centesimos, mili e nano segundos

Nelson Ferraz nferraz em gmail.com
Terça Agosto 21 11:52:08 PDT 2007


>  Bom, eu tive um caso similar, e resolvi da seguinte forma:
>
>  $ID = time;
>  $ID .= int(rand 99999)+1;
>
>  Basicamente eu pego a hora e depois acrescento um número aleatório. Claro
> que não está esgotada a possibilidade de se ter uma duplicação, mas a
> probabilidade é praticamente nula.

Isso me lembra aquela história do programador que, ao abandonar o
emprego, deixou escondida uma linha de código num canto remoto do
sistema, redefinindo o valor de "true" para int(rand()*100), de tal
forma que o sistema se comportasse de maneira totalmente previsível
99% do tempo -- mas, de vez em quando (e com uma frequência apenas
suficiente para se tornar um incômodo) gerava comportamentos
imprevisíveis, que depois eram difíceis de serem reproduzidos.

O seu caso é um pouco melhor do que isso, mas, ainda assim, nunca é
bom contar com a sorte. Se você pensa que algo tem "probabilidade
praticamente nula" é por que cedo ou tarde *vai* acontecer. E, de
acordo com a Lei de Murphy, vai acontecer no pior momento possível: na
frente do seu chefe, quando você estiver demonstrando o sistema para o
cliente.

Melhor procurar uma solução capaz de gerar identificadores
comprovadamente únicos. :-)

-- 
Nelson Ferraz


Mais detalhes sobre a lista de discussão Cascavel-pm