[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