-1

重複の可能性:
一意の ID を生成する数式?

基本的には一意の番号を生成する必要がありますが、UUID のように長すぎないようにします。そのサイズの半分の何か(小さくない場合)。

誰でもこれを行う方法を考えることができますか?

基本的に、複数の人が使用している可能性のあるアプリを作成し、アプリがファイルを生成して Web サーバーにアップロードします。これらの名前は一意である必要があります。

ちなみに、データベース テーブルを使用してこのようなことを追跡するつもりはありません。

4

3 に答える 3

3

UUID を生成し、文字列の前半のみを取得します。

重複する ID の生成が心配な場合は、それらをランダムではなく自動インクリメントにするか、新しく生成された ID の存在を確認するかを選択できます。

do {
  newId = generateNewId();
} while (idExists(newId));
于 2012-08-13T20:55:27.177 に答える
0

私の好奇心を刺激した:

// create a 32-bit uid:
    var i = BitConverter.ToUInt32(Guid.NewGuid().ToByteArray(), (new Random()).Next(0, 12));
// create a 64-bit uid
    var l = BitConverter.ToUInt64(Guid.NewGuid().ToByteArray(), (new Random()).Next(0, 8));

もちろん、GUIDを切り捨てるとほとんどの機能が失われるため、以下も同様に適用できます。また、乱数を使用することもできます。

l = BitConverter.ToUInt64(BitConverter.GetBytes((new Random()).NextDouble()), 0);

...64ビット整数を探している場合。

于 2012-08-13T21:19:38.773 に答える
0

一意で短い必要がある場合は、UUID を使用し、短縮 URL を使用してください。

于 2012-08-13T21:14:25.770 に答える