use*_*862 106 uuid primary-key
我们使用UUID作为oracle DB的主键,并尝试确定VARCHAR的适当最大字符长度.显然这是36个字符,但我们注意到UUID'生成的长度比这长 - 最多60个字符.有没有人知道UUID的合适最大字符长度?
bro*_*ofa 158
RFC4122的第3节提供了UUID字符串表示的正式定义.它是36个字符(32个十六进制数字+ 4个破折号).
听起来你需要弄清楚无效的60-char ID来自何处,并决定1)是否要接受它们,以及2)这些ID的最大长度可能基于用于生成它们的任何API.
apo*_*tek 61
顺便说一句,这是定义为CHAR 36的完美字段,而不是VARCHAR 36,因为每个值将具有完全相同的长度.并且您将使用更少的存储空间,因为您不需要存储达到值的数据长度,只需要存储值.
如今,大多数数据库都具有本机UUID类型,以便更轻松地使用它们.如果你没有,它们只是128位数字,所以你可以使用BINARY(16),如果你经常需要文本格式,例如用于故障排除,那么添加一个计算列以从二进制列自动生成它.存储(更大)文本表单没有充分的理由.