1

こんにちは、URL に配置する UID を生成する方法を見つけようとしています。現在、データベースのシーケンシャル インデックスを使用せずに UID を作成する方法を検討しています。これが私が思いついたものです。

私が知る限り、これは、両方が同じ 1/10000 秒で作成された場合にのみ重複を作成する必要があります。

function uid()
{
    list($usec, $sec) = explode(" ", microtime());

    $prec = 5;
    $usec = round($usec, $prec); 
    $sec = round($sec - ($sec / 1.001), $prec);

    $time = ($sec + $usec);

    return base_convert($time, 10, 36);
}

この関数が悪い考えである理由について何か考えはありますか?

4

3 に答える 3

0

まあ..自動インクリメント整数は主にこれを目的としているためでしょうか?それでも同じIDの可能性があります

于 2010-11-03T15:08:53.420 に答える
0

PHP の実際の uid 機能を使用しないのはなぜですか? これにより、真に一意の識別子が提供されるはずです: http://php.net/manual/en/function.uniqid.php

v4 準拠の UUID については、次のトピックを確認してください: v4 UUID を生成する PHP 関数

于 2010-11-03T15:06:59.597 に答える
0

車輪を再発明しないでください。これには、MD5、SHA1、CRC32 などのハッシュ関数が最適です。ハッシュ キーが短いほど、衝突の可能性が高くなることに注意してください。

于 2010-11-03T15:23:55.527 に答える