Conventions de dénomination des index SQL Server [fermé]

175

Existe-t-il un moyen standard de nommer les index pour SQL Server? Il semble que l'index de clé primaire s'appelle PK_ et les index non clusterisés commencent généralement par IX_. Existe-t-il d'autres conventions de dénomination pour les index uniques?

Eric Ness
la source

Réponses:

282

j'utilise

PK_ pour les clés primaires

UK_ pour les clés uniques

IX_ pour les index non uniques non groupés

UX_ pour les index uniques

Tout mon nom d'index prend la forme de
<index or key type>_<table name>_<column 1>_<column 2>_<column n>

JSR
la source
1
Qu'en est-il des index cluster non uniques? CX?
Chris Marisic
8
Je n'ai jamais eu besoin d'un index clusterisé non unique ... Je me rends compte que c'est possible, mais cela ne m'a jamais semblé être la bonne marche à suivre.
JSR
4
Selon la réponse donnée ici, stackoverflow.com/questions/1401572/… KEY et INDEX sont des synonymes. Il ne devrait donc pas être nécessaire d'avoir des préfixes différents pour les clés uniques et les index uniques?
skjerdalas
2
C'est une différence logique, j'utilise UniqueKey s'il y a une référence de clé étrangère, sinon j'utilise un UniqueIndex.
JSR
1
Pourquoi inclure le nom de la table lorsque deux tables peuvent avoir le même nom d'index? c'est-à-dire que l'unicité n'est pas nécessaire.
Tahir Hassan
25

Je nomme généralement les index par le nom de la table et les colonnes qu'ils contiennent:

ix_tablename_col1_col2
Mark Byers
la source
2
Comment différenciez-vous les colonnes d'index des colonnes incluses?
John Sansom
3
Je suis presque sûr qu'il énumère uniquement les colonnes indexées, dans l'ordre où elles sont placées dans l'index.
Brett
Je l'utilise comme suit: IX_TableName_col1_col2-includesol1-includesol2
freggel
9

Vaut-il un préfixe spécial pour les index associés aux clés étrangères? Je pense que oui, car cela me rappelle que les index sur les clés étrangères ne sont pas créés par défaut, et il est donc plus facile de voir s'ils sont manquants.

Pour cela, j'utilise des noms qui correspondent au nom de la clé étrangère:

FK_[table]_[foreign_key_table]

ou, lorsque plusieurs clés étrangères existent sur la même table

FK_[table]_[foreign_key_table]_[foreign_key_field]
Stuart Steedman
la source
1

Je connais un vieux sujet mais je pensais que j'y ajouterais mes 2 cents

  • Clé primaire PKC_, en cluster
  • Clé primaire PKNC_, non groupée
  • NCAK_ Non groupé, unique
  • CAK_ Clustered, Unique
  • NC_ Non groupé

Exemple;

NCAK_AccountHeader_OrganisationID_NextDate

Où NCAK: Non groupé, Unique, AccountHeader: Table et OrganisationID_NextDate: Colonnes.

Pixélisé
la source
5
Clé alternative - en.wikipedia.org/wiki/Unique_key#Alternate_key
Pixélisé le