2
A
回答
6
你可以看看Twitter的開源Snowflake project尋找靈感,它解決了類似的問題。它是用Scala編寫的,但是簡化版本在C#中編碼非常簡單。
前提是獲取當前的時間戳,並將其左移一位,將右側的位留給一個簡單的序列號,每當時間戳增量時將其復位爲0。通過處理位長和改變時間戳的粒度(例如決定是使用秒還是毫秒),你應該能夠很容易地生成可以適合17位的東西。
0
您可以使用GUID,GUID(全局唯一標識符)是一個128位整數,可用於唯一標識某些內容。
System.Guid.NewGuid()
+1
2^128 = 3.4 * 10^38> 10^17即你違反17位數的要求 – CodesInChaos 2010-12-10 15:24:05
相關問題
- 1. 在數據庫中生成自動唯一編號
- 2. 生成唯一編號
- 3. Access數據庫中的唯一成員編號
- 4. 根據Javascript中的字符串輸入生成唯一編號
- 5. 生成的字母數字的唯一編號
- 6. 可能生成沒有數據庫表的序列號?
- 7. 有沒有辦法通過編寫PHP來生成數據庫?
- 8. 數據庫還沒有生成
- 9. MVC Code First - 數據庫沒有生成
- 10. 生成要存儲在數據庫中的唯一隨機數
- 11. 保證與彈簧數據和休眠的唯一編號生成
- 12. 發生數據庫錯誤錯誤編號:1066不是唯一的表/別名:
- 13. 每天生成唯一的序列號
- 14. 生成唯一序列號的java
- 15. 在數據庫外部生成一個非guid唯一鍵
- 16. 用數據庫表生成唯一隨機數
- 17. 需要生成與BDD的蟒蛇中的唯一編號
- 18. 自動生成的每次更新的唯一編號列
- 19. 針對數據庫條目的高效唯一密鑰生成
- 20. 使用System.currentTimeMillis()來安全地生成唯一的數據庫ID?
- 21. 生成跨多個數據庫唯一的主鍵
- 22. 根據電話號碼生成一個唯一的PIN碼
- 23. 獲取隨機生成器生成的百分比唯一編號
- 24. 跨系統生成唯一編號的算法
- 25. 有沒有什麼辦法可以生成一個與UUID(GUID)不同的唯一編號?
- 26. 生成唯一
- 27. 唯一號碼標識符生成
- 28. 從數據庫表生成引用號
- 29. 在java應用程序中生成12位唯一編號
- 30. 以自動遞增6-8模式生成唯一編號mysql
定義「唯一」。 – ybungalobill 2010-12-10 11:06:45
獨特性如何?獨特的當前過程?機器?宇宙? – 2010-12-10 11:06:47
@Malachi:記住隨機可能產生兩次相同的數字;所以它不一定是唯一的。 – 2010-12-10 11:07:38