求比较方便的基于自增id映射出一串唯一数字id的算法


rails默认用自增id作为pk,并且url上通过id找到相应的资源,不过我想像微博那样通过一串长数字去定位资源
如:


 http://weibo.com/u/1857759250

这种形式的数字id。

该数字串最好能够有跟自增id的一定的对应关系,比如说是自增id经过一定的算法生成。
该数字串必须是唯一的,最好是不连续的,最好在10位以内。

谢谢

ruby 数据库 数据结构 算法 ruby-on-rails

春哥的咆哮 11 years, 7 months ago

id + 固定值,md5一下,不可以么?

LONELY? answered 11 years, 7 months ago

一个比较简单的做法是随便找个大数xor一下,算法简单,位数很容易控制

可以稍作变形来去除规律性,比如找16个大数,原来的数字取末4位找到对应的大数,然后末4位不变,其他位和那个大数xor,嫌末4位也有规律可以第1,3,6,15位之类的

战场D女武神 answered 11 years, 7 months ago

Your Answer