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?

Eric Ness
fuente

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>

JSR
fuente
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
Mark Byers
fuente
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]
Stuart Steedman
fuente
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.

Pixelado
fuente
55
Clave alternativa: en.wikipedia.org/wiki/Unique_key#Alternate_key
pixelada el