Estamos utilizando UUID como clave principal para nuestra base de datos de Oracle y estamos tratando de determinar una longitud máxima de caracteres adecuada para el VARCHAR. Aparentemente, son 36 caracteres, pero hemos notado que se generan UUID que son más largos que esto, hasta 60 caracteres de longitud. ¿Alguien sabe una longitud máxima de caracteres adecuada para UUID?
primary-key
uuid
usuario1753862
fuente
fuente
VARCHAR
correos electrónicos?Respuestas:
La sección 3 de RFC4122 proporciona la definición formal de representaciones de cadenas UUID. Tiene 36 caracteres (32 dígitos hexadecimales + 4 guiones).
Parece que necesita averiguar de dónde provienen los ID de 60 caracteres no válidos y decidir 1) si desea aceptarlos y 2) cuál podría ser la longitud máxima de esos ID en función de la API que se use para generarlos.
fuente
Este es el tipo de campo perfecto para definir como CHAR 36, por cierto, no VARCHAR 36, ya que cada valor tendrá exactamente la misma longitud. Y utilizará menos espacio de almacenamiento, ya que no necesita almacenar la longitud de los datos para cada valor, solo el valor.
fuente
[0-9A-Fa-f-]
que son 23 octetos distintos en ASCII.La mayoría de las bases de datos tienen un tipo de UUID nativo en estos días para facilitar el trabajo con ellas. Si el suyo no lo hace, son solo números de 128 bits, por lo que puede usar BINARY (16), y si necesita el formato de texto con frecuencia, por ejemplo, para solucionar problemas, agregue una columna calculada para generarla automáticamente a partir de la columna binaria. . No hay una buena razón para almacenar el formato de texto (mucho más grande).
fuente