重複の可能性:
一意の ID を生成する数式?
基本的には一意の番号を生成する必要がありますが、UUID のように長すぎないようにします。そのサイズの半分の何か(小さくない場合)。
誰でもこれを行う方法を考えることができますか?
基本的に、複数の人が使用している可能性のあるアプリを作成し、アプリがファイルを生成して Web サーバーにアップロードします。これらの名前は一意である必要があります。
ちなみに、データベース テーブルを使用してこのようなことを追跡するつもりはありません。
重複の可能性:
一意の ID を生成する数式?
基本的には一意の番号を生成する必要がありますが、UUID のように長すぎないようにします。そのサイズの半分の何か(小さくない場合)。
誰でもこれを行う方法を考えることができますか?
基本的に、複数の人が使用している可能性のあるアプリを作成し、アプリがファイルを生成して Web サーバーにアップロードします。これらの名前は一意である必要があります。
ちなみに、データベース テーブルを使用してこのようなことを追跡するつもりはありません。
UUID を生成し、文字列の前半のみを取得します。
重複する ID の生成が心配な場合は、それらをランダムではなく自動インクリメントにするか、新しく生成された ID の存在を確認するかを選択できます。
do {
newId = generateNewId();
} while (idExists(newId));
私の好奇心を刺激した:
// 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ビット整数を探している場合。
一意で短い必要がある場合は、UUID を使用し、短縮 URL を使用してください。