2010-05-06 26 views
117

¿Existe alguna forma estándar de nombrar índices para SQL Server? Parece que el índice de clave principal se llama PK_ y los índices no agrupados generalmente comienzan con IX_. ¿Hay alguna convención de nombres más allá de eso para índices únicos?Convenciones de nomenclatura de SQL Server

Respuesta

198

utilizo

PK_ de claves primarias

UK_ de claves únicas

IX_ para índices no únicos no agrupados

UX_ para índices únicos

Toda mi nombre de índice tomar la forma de
<index or key type>_<table name>_<column 1>_<column 2>_<column n>

+1

¿Qué hay de los índices agrupados no únicos? CX? –

+7

Nunca he tenido la necesidad de un índice agrupado no exclusivo ... Me doy cuenta de que es posible, pero nunca me pareció que fuera el curso de acción correcto. – JSR

+3

Según la respuesta que se da aquí http://stackoverflow.com/questions/1401572/what-are-differences-between-index-v-s-key-in-mysql KEY e INDEX son sinónimos. Entonces, ¿no debería ser necesario tener prefijos diferentes para claves únicas e índices únicos? – skjerdalas

17

que normalmente, el nombre índices por el nombre de la tabla y las columnas que contienen:

ix_tablename_col1_col2 
+0

¿cómo diferenciar entre el índice columnas y columnas incluidas? –

+3

Estoy bastante seguro de que solo está enumerando las columnas Indexadas, en el orden en que se colocarán en el índice. – Brett

+0

Lo uso de la siguiente manera: IX_TableName_col1_col2-includecol1-includecol2 – freggel

1

Conozco a un viejo tema, pero pensé en tirar en mis 2cents valor de

  • PKC_ clave principal, agrupadas
  • PKNC_ Clave principal, sin clúster
  • NCAK_ No agrupado, único
  • CAK_ Clustered, único
  • NC_ No agrupado

Ejemplo;

NCAK_AccountHeader_OrganisationID_NextDate

Dónde NCAK: no agrupado, único, AccountHeader: Mesa y OrganisationID_NextDate: Columnas.

+0

¿Por qué "AK" es único? –

+4

Tecla alternativa - http://en.wikipedia.org/wiki/Unique_key#Alternate_key – Pixelated

7

¿Vale la pena un prefijo especial para índices asociados con claves externas? Creo que sí, ya que me recuerda que los índices de claves externas no se crean por defecto, por lo que es más fácil ver si faltan.

Por esto, yo estoy usando nombres que coinciden con el nombre de la clave externa:

FK_[table]_[foreign_key_table] 

o, cuando existen varias claves externas en la misma mesa

FK_[table]_[foreign_key_table]_[foreign_key_field] 
Cuestiones relacionadas