명명 규칙이 중요하며 기본 키와 외래 키는 일반적으로 사용되는 명백한 규칙 ( PK_Table
및 FK_Table_ReferencedTable
각각)을 사용합니다. 그만큼IX_Table_Column
인덱스의 이름은 상당히 표준입니다.
UNIQUE 제약은 어떻습니까? 이 제약 조건에 대해 일반적으로 허용되는 명명 규칙이 있습니까? 나는 본 적이UK_TableName_Column
UQ_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의 접두사가되어야한다는 것입니다. =)