Estamos usando UUID como chave primária para nosso banco de dados oracle e tentando determinar um comprimento máximo de caracteres apropriado para o VARCHAR. Aparentemente, são 36 caracteres, mas notamos UUID'S gerados que são mais longos do que isso - até 60 caracteres de comprimento. Alguém conhece um comprimento máximo de caracteres adequado para UUID?
primary-key
uuid
user1753862
fonte
fonte
VARCHAR
s?Respostas:
A seção 3 do RFC4122 fornece a definição formal de representações de string UUID. Tem 36 caracteres (32 dígitos hexadecimais + 4 travessões).
Parece que você precisa descobrir de onde vêm os IDs de 60 caracteres inválidos e decidir 1) se deseja aceitá-los e 2) qual o comprimento máximo desses IDs com base em qualquer API usada para gerá-los.
fonte
Esse é o tipo de campo perfeito para definir como CHAR 36, aliás, não VARCHAR 36, pois cada valor terá exatamente o mesmo comprimento. E você usará menos espaço de armazenamento, já que não precisa armazenar o comprimento dos dados para cada valor, apenas o valor.
fonte
[0-9A-Fa-f-]
que tem 23 octetos distintos em ASCII.Atualmente, a maioria dos bancos de dados tem um tipo de UUID nativo para facilitar o trabalho com eles. Se o seu não, eles são apenas números de 128 bits, então você pode usar BINARY (16), e se você precisa do formato de texto frequentemente, por exemplo, para solução de problemas, então adicione uma coluna calculada para gerá-lo automaticamente a partir da coluna binária . Não há um bom motivo para armazenar o formato de texto (muito maior).
fonte