SQL Server 인덱스 명명 규칙 [닫기]


175

SQL Server의 인덱스 이름을 지정하는 표준 방법이 있습니까? 기본 키 인덱스의 이름은 PK_이고 비 클러스터형 인덱스는 일반적으로 IX_로 시작합니다. 고유 인덱스에 대한 명명 규칙이 있습니까?

답변:


282

나는 사용한다

기본 키의 경우 PK_

고유 키의 경우 UK_

클러스터되지 않은 비 고유 인덱스의 경우 IX_

고유 인덱스의 경우 UX_

내 색인 이름은 모두
<index or key type>_<table name>_<column 1>_<column 2>_<column n>


1
고유하지 않은 클러스터형 인덱스는 어떻습니까? CX?
Chris Marisic

8
나는 고유하지 않은 클러스터형 인덱스가 필요하지 않았습니다 ... 나는 그것이 가능하다는 것을 알고 있지만 그것이 나에게 올바른 행동 과정이었던 것 같지는 않았습니다.
JSR

4
여기에 주어진 대답에 따르면 stackoverflow.com/questions/1401572/… KEY와 INDEX는 동의어입니다. 따라서 고유 키와 고유 인덱스에 대해 다른 접두사를 가질 필요가 없습니까?
skjerdalas

2
논리적 차이는 외래 키 참조가 있으면 UniqueKey를 사용하고 그렇지 않으면 UniqueIndex를 사용하는 것입니다.
JSR

1
두 테이블이 동일한 인덱스 이름을 가질 수 있는데 왜 테이블 이름을 포함합니까? 즉 독창성이 필요하지 않습니다.
Tahir Hassan

25

나는 보통 테이블 이름과 테이블에 포함 된 열로 인덱스 이름을 지정합니다.

ix_tablename_col1_col2

2
인덱스 열과 포함 된 열을 어떻게 구분합니까?
John Sansom

3
나는 그가 색인에 배치되는 순서대로 색인 열만 나열하고 있다고 확신합니다.
Brett

나는 다음과 같이 사용한다 : IX_TableName_col1_col2-includecol1-includecol2
freggel

9

외래 키와 관련된 인덱스의 특별한 접두어 가치가 있습니까? 외래 키에 대한 인덱스는 기본적으로 생성되지 않으므로 누락되었는지 쉽게 알 수 있기 때문에 그렇게 생각합니다.

이를 위해 외래 키의 이름과 일치하는 이름을 사용하고 있습니다.

FK_[table]_[foreign_key_table]

또는 동일한 테이블에 여러 외래 키가있는 경우

FK_[table]_[foreign_key_table]_[foreign_key_field]

1

나는 오래된 주제를 알고 있지만 2 센트 가치가 있다고 생각했습니다.

  • PKC_ 기본 키, 클러스터
  • PKNC_ 기본 키, 비 클러스터
  • NCAK_ 비 클러스터, 고유
  • CAK_ 군집, 고유
  • NC_ 비 클러스터

예;

NCAK_AccountHeader_OrganisationID_NextDate

여기서 NCAK : 비 클러스터, 고유, AccountHeader : 테이블 및 OrganizationID_NextDate : 열.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.