2011-12-09 2 views
2

asp.net은 멤버쉽, 역할, 프로필 공급자에 대해 bigint 대신 GUID 열을 사용하는 이유는 무엇입니까?asp.net이 bigint 대신 GUID 열을 사용하는 이유

내가 알고 있듯이 int/bigint에서 guids를 사용하는 것이 가장 합당한 이유는이 테이블을 복제하거나 병합해야하는지 잘 모르겠습니다.

+3

을 감당할 수 있습니다. –

+0

ASP.NET 멤버쉽 하위 시스템은 아마도 Sharepoint 직원에 의해 설계되었습니다 .....--) –

+0

@marc_s - 솔직히 말해서, ASP.NET 2.0의 대부분의 기능 (회원을 포함하여) SharePoop에 대한 specc'd되었습니다. –

답변

4

다른면에서 사용하기 위해 만들어진 데이터베이스의 제작자이기 때문에 왜 그런지 궁금한 이유의 반대쪽에는 GUID 종류가 사용됩니다. 을 다른 데이터와 병합해야하는 상황에서 사용하지 않는다고 보장 할 수 없습니다.

2

guids의 주요 이점은 모든 데이터와 테이블에서 완벽하게 고유하다는 것입니다. 방법으로 값의면에서 더 많은 헤드 룸

2

Guids를 사용하면 Active Directory 및 Windows SID를 사용하여 멤버쉽을 조정하는 데 도움이됩니다. 확실히 시스템 생성 정수로는 그렇게 할 수 없습니다.

+0

정수로 할 수없는 이유를 설명해 주시겠습니까? – jim

+0

Windows SID는 GUID이므로. –

+0

글쎄요, 멤버십, 역할, 프로파일 제공자에게 choise가없는 활성 디렉토리를 사용하기를 원했기 때문입니다. – jim

1

구성원, 역할 및 프로필 공급자는 하나의 테이블 집합에서 여러 응용 프로그램에 대한 역할과 구성원 자격을 지원합니다. 이러한 모든 응용 프로그램에 대해 자동 증가 열을 유지해야하는 경우 엔터프라이즈 솔루션 전체에서 발생할 수있는 모든 삭제가 유지 관리 작업에 악영향을 미칩니다. MS SQL Server의 고유 한 식별자 인 GUID는 관리하기가 훨씬 쉽습니다.

+0

정보 주셔서 감사합니다. – jim

0

다른 방법을 살펴보십시오. 왜 GUID를 사용하지 않습니까? 인덱스의 크기와 비효율이 주요 요인입니다. 이 두 가지 모두 엄청난 양의 데이터에 대한 진정한 우려 일뿐입니다.

bigint 였고 프로필이 세 개인 경우 모두가 첫 번째 프로필을 만들었으므로 두 프로필을 병합하려면 네 개를 병합해야합니다. 당신이 책임지지 않고 대리 키를 사방에 사용했다면, 악몽입니다. 마이크로 소프트가 그렇게 말했기 때문에

그래서 난 내 디자인이보고있을 때, 내 질문은, 내가 GUID를 사용하지....

+0

[읽기 ** ** 클러스터 GUID가 잘못된 GUID가 있음] (http://www.sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs-andor-the-clustering-key.aspx) 그리고 너는 마음을 바꿀지도 모른다. ..... –

관련 문제