Der*_*ley 0 ruby uuid uniqueidentifier
我需要一个6字符的字母数字ID,用于我的rails应用程序,它将呈现给系统的用户,并且在我的系统中的所有对象实例中必须是唯一的.我不指望超过几千个对象实例,所以6个字符远远超过我真正需要的.
此时我在我的Rails应用程序中使用UUIDTools gem来生成一个uuid.我应该使用哪种UUIDTools生成方法,以及结果uuid的哪一端应该从中获取6个字符,以保证唯一性?
例如,如果我生成ef1cf087-95c9-4868-bd95-cea950a52b58
,我想ef1cf0
从它的前面使用,还是a52b58
从后端使用?
......作为旁注/问题:我是不是错了?有没有更好的办法?
没门.UUID被认为是唯一的,因为它很长并且实际上不可能生成相同的UUID.如果你把它修剪成6个字符,那么你就会大大增加重复的可能性.您必须使用递增ID或完整UUID.
只有确定性生成(id(x + 1) = id(x) + 1
)才能保证唯一性.UUID不保证它,6个字符保证更少.
其他选择是创建ID生成服务,它将具有单一方法getNewId
,并将保留将提供唯一ID的知识.(最简单的案例 - 柜台)