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