我有一个数据库表,其中每一行都有其唯一 ID (RowID)。
有没有一种好方法可以将此 RowID 转换为长度始终为 6 个字符的唯一键。唯一的关键字符可以是 {A-Za-z0-9}。唯一密钥的一个示例是:a5Fg3A。
当然,我确实意识到我只能使用这种方法生成一定数量的密钥,但这对我的情况无关紧要。
我对此想了很多,但我想不出一个能够正确执行此操作的算法。
我的一个想法是:唯一键 = RowID 如果 RowID 低于 100000,则在其前面附加 0,例如:123 变为 000123 1 变为 000001
然后对于 100000 到 900000 范围内的数字,我会将第一个数字替换为字符串,例如 0 = a、1 = b、2 = c、...、9 = j。
然后我可以对大写字母等做同样的事情。
我的问题是我的算法非常有限并且生成的密钥数量很少,因为它不会利用所有可能的字符。
所以基本上我应该能够生成 56800235584 个唯一键,假设每个键的长度为 6 并利用这些字符:{A-Za-z0-9}。
AZ = 26 个字符 az = 26 个字符 0-9 = 10 个字符
所以它是 62^6 个唯一键。
任何关于如何正确完成(甚至最佳)的反馈都将不胜感激:-)
谢谢!