Convenzioni di denominazione dell'indice di SQL Server [chiuso]


175

Esiste un modo standard per nominare gli indici per SQL Server? Sembra che l'indice della chiave primaria sia denominato PK_ e gli indici non cluster in genere iniziano con IX_. Esistono convenzioni di denominazione oltre a quelle per gli indici univoci?

Risposte:


282

Io uso

PK_ per chiavi primarie

UK_ per chiavi uniche

IX_ per indici non cluster non univoci

UX_ per indici univoci

Tutto il mio nome indice assume la forma di
<index or key type>_<table name>_<column 1>_<column 2>_<column n>


1
Che dire degli indici cluster non unici? CX?
Chris Marisic,

8
Non ho mai avuto bisogno di un indice cluster non univoco ... Mi rendo conto che è possibile, ma non mi è mai sembrato il giusto modo di agire.
JSR

4
Secondo la risposta fornita qui stackoverflow.com/questions/1401572/… KEY e INDEX sono sinonimi. Quindi non dovrebbe essere necessario avere prefissi diversi per chiavi univoche e indici univoci?
skjerdalas,

2
È una differenza logica, uso UniqueKey se ci sarà un riferimento di chiave esterna, altrimenti uso UniqueIndex.
JSR

1
Perché includere il nome della tabella quando due tabelle possono avere lo stesso nome indice? cioè l'unicità non è necessaria.
Tahir Hassan,

25

In genere, denominerò gli indici in base al nome della tabella e alle colonne che contengono:

ix_tablename_col1_col2

2
Come si fa a distinguere tra colonne indice e colonne incluse?
John Sansom,

3
Sono abbastanza sicuro che stia elencando solo le colonne indicizzate, nell'ordine in cui vengono inserite nell'indice.
Brett,

Lo uso come segue: IX_TableName_col1_col2-includecol1-includecol2
freggel

9

Vale la pena un prefisso speciale per gli indici associati alle chiavi esterne? Penso di sì, poiché mi ricorda che gli indici sulle chiavi esterne non sono creati per impostazione predefinita, quindi è più facile vedere se mancano.

Per questo, sto usando nomi che corrispondono al nome della chiave esterna:

FK_[table]_[foreign_key_table]

oppure, dove esistono più chiavi esterne sulla stessa tabella

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

1

Conosco un vecchio argomento ma ho pensato di aggiungere i miei 2 centesimi

  • PKC_ Chiave primaria, raggruppata
  • PKNC_ Chiave primaria, non cluster
  • NCAK_ Non cluster, unico
  • CAK_ Clustered, unico
  • NC_ Non cluster

Esempio;

NCAK_AccountHeader_OrganisationID_NextDate

Dove NCAK: Non cluster, Unico, AccountHeader: Table and OrganisationID_NextDate: Columns.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.