C# で UUID を生成する
この記事は、UUID
とは何かを理解し、C# で生成するのに役立ちます。
ユニバーサル一意識別子または UUID
ユニバーサル一意識別子は、UUID
と呼ばれます。一意の識別には GUID
を使用します。
すでに主キーがあるとします。その場合、重複のリスクが低い 128 ビット整数(16 バイト)であるため、GUID
を使用します。これにより、すべてのデータベースとコンピューターで使用でき、データの衝突を回避できます。
C#
で UUID
を生成する
.Net
フレームワークには、C# 言語でバージョン 4 の UUID
を作成するための組み込み機能が含まれています。UUID
を生成する例を次に示します。
構文:
Guid MyUniqueId = Guid.NewGuid();
例:
using System;
using System.Diagnostics;
namespace MyUUIDGeneration {
class UUID {
public static void Main(string[] args) {
Guid myUUId = Guid.NewGuid();
string convertedUUID = myUUId.ToString();
Console.WriteLine("Current UUID is: " + convertedUUID);
}
}
}
出力:
Current UUID is: 123z0987-d23b-43gd-s566-000414174266
上記のコード例を実行するには、これらのライブラリが必要です。
using System;
using System.Diagnostics;
Guid.NewGuid()
と呼ばれる静的アプローチを展開して、MyUniqueId
という名前の新しい変数を初期化しました。 .Net
では、GUID
は UUID
と同じです。
Guid myUUId = Guid.NewGuid();
GUID
オブジェクトを文字列に変換するには、ToString()
関数を使用します。GUID
文字列表現は、通常の UUID
を表します。
C#
の GUID
形式
GUID
は、システム名前空間にある構造です。16 進整数の文字列は、言語で GUID
を記述するための最も体系的なアプローチです。
このようなもの:{ 123z0987-d23b-43gd-s566-000414174266 }
C#
の GUID
識別子
GUID
は、このユニークな識別子の名前です。Windows プログラムによって生成された GUID
は、特定のアイテム、ソフトウェア、パーツ、またはリポジトリレコードを判別するために使用できます。
多くのプログラマーが独立して作業し、ID
を生成する分散システムについて考えてみます。2 人のプログラマーが同じ ID
を生成し、システムをマージするときに問題が発生する可能性があります。
したがって、一意である必要がある ID
を生成する複数の独立したシステムまたはユーザーがいる場合は、GUID
を使用する必要があります。プログラミングでインターフェースまたはメソッドを構築するとき、それを呼び出すために使用される一意の ID
を割り当てます。
GUID
はデータの衝突を防ぎます。さまざまなマシンやネットワークなどの間でデータベースを統合するのは簡単です。
レコードを挿入する前にメインキーを決定するのに役立ちます。理解するのは簡単ではありません。
C#
の GUID
の欠点
すべての GUID
には長所と短所の両方があります。10,000 エントリのデータベースでは、GUID
は 160000 バイトを使用します。
もう 1つの欠点は、他のテーブルの主
キーのほとんどが外部
キーであるということです。GUID
のみが 5つの FK エントリで約 60 バイトを使用し、時間の経過とともにパフォーマンスの懸念の主な原因になります。
順序が狂っている
手法は、ランダムな GUID
を生成します。挿入タイムスタンプとして、ソートにいくつかの方法を適用する必要があります。
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn