나는 일반적으로 데이터베이스에서 자동 증가 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가 내 요구 사항에 맞는 정수보다 더 적합하다고 믿었습니다. 요즘 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로 모델링해야합니까?