10
GUIDを主キーとして使用する
通常、データベースの主キーとして自動インクリメントIDを使用します。GUIDを使用する利点を学ぼうとしています。私はこの記事を読みました:https : //betterexplained.com/articles/the-quick-guide-to-guids/ これらのGUIDは、アプリケーションレベルでオブジェクトを識別するために使用されることを理解しています。データベースレベルでプライマリキーとしても保存されますか。たとえば、次のクラスがあったとします: public class Person { public GUID ID; public string Name; .. //Person Methods follow } メモリ内に新しい人物を作成し、その人物をデータベースに挿入したいとします。これをやってもいいですか: Person p1 = new Person(); p1.ID=GUID.NewGUID(); PersonRepository.Insert(p1); GUIDを主キーとする数百万の行を含むデータベースがあったとします。これは常に一意ですか?GUIDを正しく理解していますか? 以前にこの記事を読んだ:http : //enterprisecraftsmanship.com/2014/11/15/cqs-with-database-generated-ids/。GUIDと整数の間の幸せな媒体を主キーとして推奨するように見えるので、少し混乱します。 編集11/06/18 Guidsはintよりも自分の要件に適していると信じるようになりました。私は最近CQRSをより多く使用しており、GUIDはよりうまく適合しています。 一部の開発者は、GUIDをドメインモデルの文字列としてモデル化することに注意してください。例:https : //github.com/dotnet-architecture/eShopOnContainers/blob/dev/src/Services/Ordering/Ordering.Domain/AggregatesModel/BuyerAggregate/ Buyer.cs-この場合:IdentityGuidは文字列としてモデル化されたGUIDです。ここに記載されていること以外にこれを行う理由はありますか?カスタム値オブジェクトまたはGUIDを分散システムのエンティティ識別子として使用しますか?。GUIDを文字列としてモデル化するのは「通常」ですか、それともモデルとデータベースでGUIDとしてモデル化する必要がありますか?