2012-07-25 3 views
1

간단한 질문입니다. 여러 모델이 SQL 데이터베이스에 저장되어 있습니다. 바이트 데이터, 큰 멀티 필드 사용자 데이터 테이블 등 이미지 레코드의 테이블. 이 모든 모델에는 기본 키가 필요합니다. 대부분의 초급 자습서에서는 ID에 대한 int의 사용법을 보여줍니다. 이 표준과 전문입니까. 길이가 가변적이어서 1부터 시작하여 사용 int를 시작하는 것이 이상하다고 생각합니다. SASP.NET MVC 모델 ID 유형 - 모범 사례

아마추어 질문에 유감이지만 Google을 통해 주제에 대해 적절한 자료를 찾을 수 없습니다.

+0

int가 "가변 길이이고 1로 시작"이라고하는 이유는 무엇입니까? 어떻게 든 관련 질문에 대한 링크 : http://stackoverflow.com/questions/255569/sql-data-type-for-primary-key-sql-server – darkey

+0

SQL Server의 'INT IDENTITY' 열은 기본적으로'1 '시드와' 1 '증가. 그러나 당신은 [정의를 바꿀 수 있습니다] (http://msdn.microsoft.com/en-us/library/aa933196(v=sql.80)).aspx) 컬럼을 선언함으로써'Id INT IDENTITY (seed, inc)' – Kivin

+0

kivin, 이전에 시드 된 SQL을 기억하지만 모델에서 수행하는 방법을 알지 못했습니다. darkey 가변 길이에 대한 의미는 자릿수입니다. 나는 이드가 0001, 0234, ect처럼 보이거나 guid가 같다고 생각한다. –

답변

1

INT 또는 기타 integral data type을 기본 키 또는 ID 열로 사용하는 것에 대해 암묵적으로 비전문적 인 것은 없습니다. 비즈니스 요구에 따라 다릅니다.

  • 그것은 약 21 억 독특한 기록을 표시 할 수 있습니다 : as simple as possible 프로그래밍 유지의 관심에서 INT 데이터 유형은 많은 비즈니스 요구를위한 좋은 선택이 될 것입니다.
  • 현대 하드웨어에서 최소한의 하드 디스크 공간을 사용합니다.
  • SELECTUPDATE에 대해 빠릅니다.
  • 레코드 수가 제한을 초과 할 위험이있는 경우 큰 정수로 리팩토링하는 것이 상당히 쉽습니다. BIGINT은 데이터베이스에 저장할 수있는 것보다 많은 레코드를 처리 할 수 ​​있습니다. 진지하게. 당신이 하지이 필수적인 기본 키를 사용할 수도 있습니다

한 가지 이유 :

  • 당신은 글로벌 고유성에 대한 Guid (또는 SQL에서 UNIQUEIDENTIFIER 서버 용어를) 사용할 수 있습니다. 즉, 데이터를 다른 위치로 마이그레이션하는 경우 기본 키는 여전히 고유해야합니다.
0

예, int은 업계 표준입니다.

데이터베이스를 넘어 심지어는 uint 또는 정수를 나타내는 다른 변형이있는 C# 코드는 거의 볼 수 없습니다. 때로는 배열에 byte이 사용됩니다. int이 모든 가능성을 다루기에 충분하지 않을 때 long이 사용됩니다. 항상 int를 사용

장점 중 하나는 서로 다른 정수 유형 사이의 캐스팅에 대해 걱정할 필요없이 주위 id 변수를 전달할 수 있다는 것입니다.

0

이것은 100 % ok이며 널리 사용됩니다. 최대 값이 크기 때문에 기본 키는 long을 사용합니다. 하지만, 대부분의 경우에는 필요하지 않습니다.

0

Guid 유형도 때때로 ID로 사용됩니다. 고정 길이, 글로벌 고유성 및 예측 불가능 성과 같은 몇 가지 이점이 있습니다. 검색 성능이 낮고 기억하기 어려운 것과 같은 몇 가지 문제가 있습니다.