我需要生成一个随机字符串(8位字母数字代码),并将其与“比赛”行一起保存到数据库中。
问题是该代码在整个表中必须是唯一的,并且是随机的(不是增量的),因为我不希望它是可预测的(使用它的人参加比赛)。
所以我需要一些东西来生成一个代码,但是当它已经在表中时,再生成一个新的代码。一种方法是生成代码,然后检查数据库是否存在,然后在发生冲突时生成新代码。但是此解决方案存在很多问题,例如它可以永久运行且运行缓慢。
答案 0 :(得分:0)
答案是使用结合了“唯一”部分和“随机”部分的unique identifier。
此外,出于生成唯一标识符的目的,没有理由像现在那样将自己限制为8个字符的字母数字标识符。