Sebastián Villalba escribió:
> On Wed, 24 Feb 2010 17:27:57 -0300, Alvaro Herrera wrote
> > Fernando Hevia escribió:
> > 
> > > De ninguna manera podés garantizar que ese mecanismo te de identificadores
> > > únicos.
> > > ¿Porqué no usas un serial?
> > 
> > Si quieres identificadores únicos que no sigan un orden correlativo
> > quizás te sirva esto:
> > 
> > http://wiki.postgresql.org/wiki/Pseudo_encrypt
> 
> Efectivamente necesito algo así, que no siga patrón correlativo o determinado.
> El único requisito es que la longitud debe ser de 7. Por un antojo el
> "substring(md5(CURRENT_TIME::time)from 7 for 7)" lo hago a partir de la
> séptima posición, porque se me ocurrió hacerlo así, pero sin contar con ningún
> fundamento teórico. 

Supongo que lo que puedes hacer si te interesa asegurar unicidad es
convertir el número de la función de Verite en un string de 7
caracteres.  Claro que tendrías que modificarla, porque con una cadena
de largo 7 en hex tienes a lo más 268.435.456 cadenas distintas (16^7),
pero la función de Verite retorna 2^32 valores distintos (4 mil millones
y fracción)

Lo otro que podrías hacer es usar 24 dígitos en vez de 16, con lo que
tienes espacio para 4500 millones de valores; cubrirías todo el espacio
de Verite y un poco más.  Ahí el único trabajo que tendrías sería
inventar cómo mapear un número de 32 bits a un string ...

-- 
Alvaro Herrera       Vendo parcela en Valdivia:
http://valdivia.vivastreet.cl/loteos-lotes+valdivia/parcela-en-cabo-blanco--valdivia/19288372
"Sallah, I said NO camels! That's FIVE camels; can't you count?"
(Indiana Jones)
--
TIP 5: ¿Has leído nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Responder a