我有一個數據庫表,每行都有其唯一的標識(RowID)。將唯一編號映射到6個字符的唯一字符串
是否有一種很好的方法將此RowID轉換爲長度始終爲6個字符的唯一鍵。唯一的關鍵字符可以是{A-Za-z0-9}。唯一鍵的一個例子是:a5Fg3A。
當然我知道只有一定數量的密鑰可以使用這種方法生成,但這對我的情況無關緊要。
我已經想了很多關於這個,但我不能想出一個算法,能夠正確地做到這一點。
我有一個想法是: 唯一鍵= ROWID 如果ROWID是比100000低則在它的前面附加0,例如: 123變爲00 1變成000001
然後在數字範圍從100000到900000我會將第一個數字替換爲一個字符串,例如0 = a,1 = b,2 = c,...,9 = j。
然後,我可以做大寫字母一樣,等
我的問題是,我的算法是非常有限的,生成密鑰的數量少,因爲它不會利用所有可能的字符。
所以基本上我應該能夠生成56800235584獨特的密鑰,假設每個密鑰的長度爲6,並利用這些字符{A-Za-z0-9}。
A-Z = 26個字符 A-Z = 26個字符 0-9 = 10個字符
因此,它是62^6個獨特的密鑰。
任何反饋將如何這可能是正確完成(甚至是最優的):-)
謝謝理解!
難道你不是在尋找一種方法將一個數字轉換爲它的base-62表示嗎? –
這是正確的,那就是訣竅。謝謝! – raRaRa