universe1

Es una práctica muy extendida en el diseño de base de datos crear un campo llamado id y determinarlo como clave primaria de la tabla. Generalmente dicho campo es un número entero y autoincremental, es decir, el motor de la base de datos se encarga de incrementar dicho número a medida que se van agregando registros.

Sin embargo, hay algunos casos en los que no es posible utilizar números enteros decimales autoincrementales como clave primaria. Para esos casos existe una solución efectiva y práctica: el identificador único universal.

Un UUID (Universally Unique Identifier) es una sucesión de 5 números hexadecimales separados por guiones. Estos son algunos ejemplos:

4a3000fc-38e0-4e14-8cd4-08a0650df841
4a2ff7d4-dc50-4223-a7f0-08a0650df841
4a301d63-b540-4e7f-a160-08a0650df841

Los UUID tienen características fundamentales que los hacen realmente útiles:

1. Son universalmente únicos

La forma en que se generan hace que sea imposible que haya dos UUID iguales en cualquier sistema que se haga o se haya hecho. Para crear un UUID se tienen en cuenta datos del servidor o equipo que lo genera, números aleatorios y la hora actual en microsegundos. Por lo tanto, para que haya dos UUID iguales tendría que suceder que sean generados por el mismo hardware, dentro del mismo microsegundo y, además, que los números aleatorios elegidos sean iguales. La probabilidad de colisión no es cero, pero casi.

2. El algoritmo de generación es muy rápido

Generar un UUID prácticamente no tiene costo para el rendimiento del sistema. Otros métodos de generación aleatoria de cadenas deben verificar que dicha cadena no haya sido utilizada ya por el sistema, lo que implica lectura en base de datos, posiblemente más de una vez.

3. Está compuesto por números hexadecimales

Esto hace que sean sencillos de almacenar en formato de cadena o binario y también son fáciles de transmitir por Internet o pasar como parámetro por url. Se puede reducir su tamaño llevándolo a base 36 o base 64.