Convenciones de nomenclatura de índice de SQL Server [cerrado]


175

¿Hay 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_. ¿Existen convenciones de nombres más allá de eso para índices únicos?

Respuestas:


282

yo suelo

PK_ para claves primarias

UK_ para claves únicas

IX_ para índices no agrupados no únicos

UX_ para índices únicos

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


1
¿Qué pasa con los índices agrupados no únicos? CX?
Chris Marisic

8
Nunca he necesitado un índice agrupado no único ... Me doy cuenta de que es posible, pero nunca me pareció el curso de acción correcto.
JSR

44
De acuerdo con la respuesta dada aquí stackoverflow.com/questions/1401572/… KEY e INDEX son sinónimos. Entonces, ¿no debería ser necesario tener prefijos diferentes para claves únicas e índices únicos?
skjerdalas

2
Es una diferencia lógica, uso UniqueKey si habrá una referencia de clave foránea, de lo contrario, uso un UniqueIndex.
JSR

1
¿Por qué incluir el nombre de la tabla cuando dos tablas pueden tener el mismo nombre de índice? es decir, la unicidad no es necesaria.
Tahir Hassan

25

Normalmente nombro índices por el nombre de la tabla y las columnas que contienen:

ix_tablename_col1_col2

2
¿Cómo diferenciar entre columnas de índice y columnas incluidas?
John Sansom

3
Estoy bastante seguro de que solo enumera las columnas indexadas, en el orden en que se colocan en el índice.
Brett

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

9

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

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

FK_[table]_[foreign_key_table]

o, donde existen varias claves externas en la misma tabla

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

1

Conozco un viejo tema, pero pensé en tirar mis dos centavos

  • PKC_ Clave primaria, agrupada
  • PKNC_ Clave primaria, no agrupada
  • NCAK_ No agrupado, único
  • CAK_ Agrupado, Único
  • NC_ No agrupado

Ejemplo;

NCAK_AccountHeader_OrganisationID_NextDate

Donde NCAK: No agrupado, Único, AccountHeader: Table and OrganisationID_NextDate: Columnas.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.