Konwencje nazewnictwa indeksów SQL Server [zamknięte]

175

Czy istnieje jakiś standardowy sposób na nazwanie indeksów dla programu SQL Server? Wydaje się, że indeks klucza podstawowego nosi nazwę PK_, a indeksy nieklastrowe zwykle zaczynają się od IX_. Czy są jakieś konwencje nazewnictwa poza tą dla unikalnych indeksów?

Eric Ness
źródło

Odpowiedzi:

282

używam

PK_ dla kluczy podstawowych

UK_ dla unikalnych kluczy

IX_ dla nieklastrowych nieunikalnych indeksów

UX_ dla unikalnych indeksów

Cała moja nazwa indeksu ma postać
<index or key type>_<table name>_<column 1>_<column 2>_<column n>

JSR
źródło
1
A co z nieunikalnymi indeksami klastrowymi? CX?
Chris Marisic
8
Nigdy nie potrzebowałem nieunikalnego indeksu klastrowego ... Zdaję sobie sprawę, że jest to możliwe, ale nigdy nie wydawało mi się, że jest to właściwy kierunek działania.
JSR
4
Zgodnie z podaną tutaj odpowiedzią stackoverflow.com/questions/1401572/… KEY i INDEX to synonimy. Więc nie powinno być potrzeby stosowania różnych prefiksów dla unikalnych kluczy i unikalnych indeksów?
skjerdalas,
2
Jest to logiczna różnica, używam UniqueKey, jeśli będzie odwołanie do klucza obcego, w przeciwnym razie używam UniqueIndex.
JSR
1
Po co podawać nazwę tabeli, skoro dwie tabele mogą mieć tę samą nazwę indeksu? tzn. wyjątkowość nie jest potrzebna.
Tahir Hassan
25

Indeksy zwykle nazywam nazwą tabeli i kolumn, które zawierają:

ix_tablename_col1_col2
Mark Byers
źródło
2
Jak rozróżniasz kolumny indeksu i kolumny uwzględnione?
John Sansom
3
Jestem prawie pewien, że wymienia tylko kolumny zindeksowane w kolejności, w jakiej są umieszczane w indeksie.
Brett
Używam go w następujący sposób: IX_TableName_col1_col2 -ludesecol1 -ludesecol2
freggel
9

Czy warto mieć specjalny prefiks dla indeksów powiązanych z kluczami obcymi? Myślę, że tak, ponieważ przypomina mi, że indeksy na kluczach obcych nie są tworzone domyślnie, więc łatwiej jest sprawdzić, czy ich brakuje.

W tym celu używam nazw pasujących do nazwy klucza obcego:

FK_[table]_[foreign_key_table]

lub, gdy w tej samej tabeli istnieje wiele kluczy obcych

FK_[table]_[foreign_key_table]_[foreign_key_field]
Stuart Steedman
źródło
1

Znam stary temat, ale pomyślałem, że dorzucę warte 2 centy

  • Klucz podstawowy PKC_, klastrowany
  • PKNC_ Primary Key, Non Clusterd
  • NCAK_ Non Clustered, Unique
  • CAK_ Zgrupowany, wyjątkowy
  • NC_ Non Clustered

Przykład;

NCAK_AccountHeader_OrganisationID_NextDate

Gdzie NCAK: Non Clustered, Unique, AccountHeader: Table i OrganisationID_NextDate: Columns.

Pikselowane
źródło
5
Alternatywny klucz - en.wikipedia.org/wiki/Unique_key#Alternate_key
Pixelated