2017-12-22 31 views
0

ユーザーがフォームを送信すると、12桁の一意のIDを生成する必要があります。私はいくつかのオプションを考えましたが、どちらが最良か、あるいは別の方法があるかどうかはわかりません。dynamodbに12桁の固有番号を生成していますか?

  1. ユニークなIDを事前に生成して保存します。ユーザーがフォームを送信すると、IDを取得して削除し、再度使用できないようにします。
  2. ランダムな12桁の一意のIDを作成し、使用されているかどうかを確認し、使用されていない場合は使用してください。それが使用されている場合は、別の一意のIDを再作成してください。使用されていない一意のIDが見つかるまでこれを続けます。

私はGUIDSを使用することはできません。そうしないと、誰かが何か提案があれば、素晴らしいことになります。

私は.NET AWS SDKに

を使用しています

私は、テーブル内のハッシュキーとして5000万に番号200万を格納について考えました。そして、クライアント側で、やって何かのように:乱数が返されたため

new Random().Next(2000000,50000000)

は、その後、私は、私はそれを見つけた場合、それを再び使用することはできませんので、私はそれを削除します、dynamotableを照会だろうが、より多くのユーザーが固有のIDを取得する場合、乱数はより頻繁に見逃してしまうような気が

+0

これらのIDをデータベースに保存していますか?もしそうなら、(うまくいけば)増分的に生成されているIDを使用することはできませんか?次に、uniqueId.ToString( "D12")を実行します。 –

+0

はいIDをdynamodbテーブルに格納しています。ユーザーごとに一意です。しかし、dynamodbが自動インクリメントキーをサポートしていないことが私の理解であった – xaisoft

+2

IDの基礎としてタイムスタンプを使用することを検討してください。 – Amy

答えて

0

何について:

string uniqueId=""; 
Random randomizer = new Random(); 
for (int i = 0; i < 12; i++) 
{ 
uniqueId+= randomizer.Next(0, 10); 
} 

そのようにあなたが整数をランダム化していて、それが12固有の番号を持っていることを確認します、あなたはあなたに質問する必要がありますe DBが存在する場合は、関数を再度実行し、何も返されなくなるまでチェックします。

関連する問題