[sql] 고유 제약 조건에 대한 명명 규칙

명명 규칙이 중요하며 기본 키와 외래 키는 일반적으로 사용되는 명백한 규칙 ( PK_TableFK_Table_ReferencedTable각각)을 사용합니다. 그만큼IX_Table_Column인덱스의 이름은 상당히 표준입니다.

UNIQUE 제약은 어떻습니까? 이 제약 조건에 대해 일반적으로 허용되는 명명 규칙이 있습니까? 나는 본 적이UK_TableName_ColumnUQ_TableName_Column, 및 추천하는 사람을 .AX_TableName_Column – 그 어디에서 오는지 모르겠어요.

나는 일반적으로 UQ 했지만 특별히 좋아하지 않으며, 나는 그것을 사용하는 것을 방어하는 것을 좋아하지 않습니다.UK 옹호자 .

가장 널리 사용되는 이름에 대한 합의가 있는지 또는 왜 다른 이름보다 더 의미가 있는지에 대한 좋은 추론이 있는지 확인하고 싶습니다.



답변

내 생각은 이것이 핵심이 아니라 제약이라는 것입니다.

그것은 물론 키로서 사용, 고유은 행을 식별하지만 그것은 할 수 없는 키.

예를 들어 키는 ThingName 자연 키 대신 사용되는 대리 키인 “ThingID” 입니다. 여전히 제한 해야합니다. ThingName . 그래도 키로 사용되지는 않습니다.

또한 UQ와 UQC (클러스터 된 경우)를 사용합니다.

대신 고유 색인을 사용하고 “IXU”로 이동할 수 있습니다. 사용 된 논리에 따라 인덱스도 키이지만 고유 한 경우에만 해당됩니다. 그렇지 않으면 인덱스입니다. 그래서 우리 IK_columnname는 고유 인덱스에 대해 시작 하고IX_columnname 비 합니다. 기이.

고유 제약 조건과 고유 인덱스의 유일한 차이점은 INCLUDE 열입니다.

편집 : 2013 년 2 월. SQL Server 2008 이후 인덱스에도 필터가있을 수 있습니다. 제약은 할 수 없습니다

그래서, 그것은

  • 나머지 SQL 사용 행성에 따라 UQ를 고수하십시오.
  • 일관성을 유지하려면 고유 인덱스에 IK (클러스터 된 경우에도 IKC)를 사용하십시오.

답변

인덱스 및 제약 조건에 대한 내 명명 규칙 :

  • 기본 키. _PK
  • 고유 인덱스 / 제약 조건. _AK {xx}
  • 고유하지 않은 색인. _IX {xx}
  • 제약 조건을 확인하십시오. _CK {xx}
  • 기본 제약. _DF {xx}
  • 외래 키 제약. _FK {xx}

여기서 {xx}는 테이블 당 각 제한 유형에 대해 01에서 시작하는 2 자리 시퀀스 번호입니다. 기본 키는 하나만있을 수 있으므로 시퀀스 번호를 얻지 못합니다. 2 자로 된 알파 접미사 의미는 다음과 같습니다.

  • PK : 기본 키
  • AK : 대체 키
  • FK : 외래 키
  • IX : IndeX
  • CK : ChecK
  • DF : 결함 제거

일반적으로 개체 유형이 아닌 제어 개체별로 메타 데이터 / 시스템 카탈로그 데이터를 그룹화하고 싶습니다.


답변

나는 UQ를 사용합니다. 영국의 K는 PK와 FK에서 사용되는 K를 생각하게합니다. 어쨌든 영국을 생각하면 아이러니하게도 영국이 다른 많은 협회를 가져올 때 UNIQUE의 접두사가되어야한다는 것입니다. =)


답변