Соглашения об именах индексов SQL Server

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

Ответ 1

Я использую

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

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

IX_ для не кластеризованных не уникальных индексов

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

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

Ответ 2

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

ix_tablename_col1_col2

Ответ 3

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

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

FK_[table]_[foreign_key_table]

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

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

Ответ 4

Я знаю старую тему, но подумал, что я бы выбрал 2 центов

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

Пример

NCAK_AccountHeader_OrganisationID_NextDate

Где NCAK: Non Clustered, Unique, AccountHeader: Таблица и OrganisationID_NextDate: Столбцы.