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?

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>


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

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]

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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.