2010-05-06 3 views
117

Существует ли стандартный способ для индексирования индексов для SQL Server? Похоже, что индекс первичного ключа называется PK_, а некластеризованные индексы обычно начинаются с IX_. Существуют ли какие-либо соглашения об именах, выходящие за рамки уникальных индексов?Соглашения об именах индексов SQL Server

ответ

198

Я использую

PK_ для первичных ключей

UK_ для уникальных ключей

IX_ для негрупповых неединичных индексов

UX_ для уникальных индексов

Все мое имя индекса принимает форму
<index or key type>_<table name>_<column 1>_<column 2>_<column n>

+1

Как насчет неуниверсальных кластеризованных индексов? CX? –

+7

У меня никогда не было необходимости в уникальном кластерном индексе ... Я понимаю, что это возможно, но для меня это никогда не казалось правильным. – JSR

+3

В соответствии с приведенным здесь ответом http://stackoverflow.com/questions/1401572/what-are-differences-between-index-v-s-key-in-mysql KEY и INDEX являются синонимами. Таким образом, не нужно иметь разные префиксы для уникальных ключей и уникальных индексов? – skjerdalas

17

Я обычно называют индексами по имени таблицы и столбцов, которые они содержат:

ix_tablename_col1_col2 
+0

Как вы различия между индексом столбцы и столбцы? –

+3

Я уверен, что он перечисляет только индексированные столбцы в том порядке, в котором они помещаются в индекс. – Brett

+0

Я использую его следующим образом: IX_TableName_col1_col2-includesecol1-includecol2 – freggel

1

Я знаю старую тему, но думал, что я брошу в моей 2cents стоит

  • PKC_ Первичного ключа, кластерного
  • PKNC_ Первичный ключ, некластер
  • NCAK_ Non Clustered, Unique
  • CAK_ Clustered, Unique
  • NC_ Non Clustered

Пример:

NCAK_AccountHeader_OrganisationID_NextDate

Где NCAK: Non кластерным, Unique, AccountHeader: Таблица и OrganisationID_NextDate: Столбцы.

+0

Почему «АК» уникален? – 2011-09-29 16:10:05

+4

Альтернативный ключ - http://en.wikipedia.org/wiki/Unique_key#Alternate_key – Pixelated

7

Стоит ли специальный префикс для индексов, связанных с внешними ключами? Я так думаю, так как он напоминает мне, что индексы на внешних ключах не создаются по умолчанию, и поэтому легче увидеть, отсутствуют ли они.

Для этого я использую имена, которые соответствуют имя внешнего ключа:

FK_[table]_[foreign_key_table] 

или, где существует несколько внешних ключей в одной таблице

FK_[table]_[foreign_key_table]_[foreign_key_field] 
Смежные вопросы