ASP.NET で設計した Web サイトを立ち上げる準備をしています。
問題は、顧客に非常に低い注文 ID (例: #00000001) を持たせたくないということです。
顧客が K20434034 のような注文番号を取得できるように、一意の (かつランダムな) 注文 ID を生成するにはどうすればよいですか?
ASP.NET で設計した Web サイトを立ち上げる準備をしています。
問題は、顧客に非常に低い注文 ID (例: #00000001) を持たせたくないということです。
顧客が K20434034 のような注文番号を取得できるように、一意の (かつランダムな) 注文 ID を生成するにはどうすればよいですか?
ビジネス層とデータベースの両方から複数のオプションがあります。
Int64
生成されたものRNGCryptoServiceProvider
は、衝突または予測可能性の可能性が非常に低いです)UNIQUEIDENTIFIER
(またはSystem.Guid
)およびベース62はバイトをエンコードしますOrderIdのIDシードを多数に設定します。次に、注文番号をユーザーに提示するときに、注文IDの前に定数を追加するか(すべての注文がKで始まるように)、ランダムな文字列を生成して注文レコードに保存することもできます。
数が少ないと思わない場合は、IDシードをより高い数から開始することをお勧めします。ランダムの問題は、衝突の可能性が常にあり、既存の注文IDの数が増えるにつれて、重複をチェックするのにますます費用がかかることです。
列のデータ型をUNIQUEIDENTIFIERにします。このデータ型は、以下の形式でIDを提供します。これがニーズを満たすことを願っています。
B85E62C3-DC56-40C0-852A-49F759AC68FB。