求唯一 ID 的生成算法

2014-05-20 13:17:06 +08:00
 tabris17
已知一个数据库自增长的INT字段是唯一的,要把这个ID用散列算法映射到一个更大的空间里(比如6位数字),而且对于连续的INT,散列生成的结果离散性要好,比如1=》721370;2=》894357;3=》198222,而不是1=》100000;2=》200000,3=》300000,而且能保证不发生碰撞
10387 次点击
所在节点    问与答
43 条回复
tabris17
2014-05-21 11:04:17 +08:00
@aisk 非常感谢
tabris17
2014-05-21 11:05:32 +08:00
@aisk 网站很棒,已收藏
hedaode
2014-05-21 17:50:48 +08:00
可以把id简单加密(对称)下,这样既能保证id无明显规律,又能保持唯一性。例如:
id=htonl(id);//颠倒字节顺序
id=id^0x3f91b217;//异或加密,密码自定义

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/113382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX