ホームページ  >  に質問  >  本文

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

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

http://weibo.com/u/1857759250

这种形式的数字id。

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

谢谢

迷茫迷茫2712日前759

全員に返信(2)返信します

  • 阿神

    阿神2017-04-22 09:01:53

    比較的単純な方法は、大きな数値を見つけてそれを XOR することです。アルゴリズムは単純で、桁数を制御するのが簡単です。

    わずかに変形して規則性を取り除くことができます。たとえば、16 個の大きな数字を見つけるには、元の数字の最後の 4 桁を取り出して、対応する大き​​な数字を見つけます。その後、最後の 4 桁は変更されず、他の数字はそのままになります。大きな数字との xored には下 4 桁も含まれます。パターンは 1、3、6、15 などになります。

    返事
    0
  • 怪我咯

    怪我咯2017-04-22 09:01:53

    id + 固定値、md5 では無理でしょうか?

    返事
    0
  • キャンセル返事