Les conventions de dénomination sont importantes, et la clé primaire et la clé étrangère ont couramment utilisé des conventions évidentes (PK_Table
et FK_Table_ReferencedTable
, respectivement). Le IX_Table_Column
_ nommer les index est également assez standard.
Qu'en est-il de la contrainte UNIQUE? Existe-t-il une convention de nommage communément acceptée pour cette contrainte? J'ai vu UK_TableName_Column
, UQ_TableName_Column
, et quelqu'un recommandant AX_TableName_Column
- Je ne sais pas d'où ça vient.
J'ai généralement utilisé UQ
mais je ne l'aime pas particulièrement et je n'aime pas avoir à défendre mon choix de l'utiliser contre un avocat UK
.
J'aimerais simplement voir s'il existe un consensus sur la dénomination la plus répandue, ou un bon raisonnement pour expliquer pourquoi l'une est plus logique que les autres.
Ma pensée est que ce n'est pas une clé: c'est une contrainte.
Il pourrait être utilisé comme clé, bien sûr, et identifie de manière unique une ligne, mais il n'est pas la clé.
Un exemple serait que la clé est "ThingID", un substitut clé utilisé à la place de ThingName, la clé naturelle. Vous devez toujours contraindre ThingName: il ne sera cependant pas utilisé comme clé.
Je voudrais aussi utiliser UQ et UQC (si en cluster).
Vous pouvez utiliser un index unique à la place et opter pour "IXU". Selon la logique utilisée, un index est également une clé, mais uniquement lorsqu'il est unique. Sinon c'est un index. Nous commencerions donc par IK_columnname
pour les index uniques et IX_columnname
pour les index non uniques. Merveilleux.
Et la seule différence entre une contrainte unique et un index unique réside dans les colonnes INCLUDE.
Edit: Feb 2013. Depuis SQL Server 2008, les index peuvent aussi avoir des filtres. Les contraintes ne peuvent pas
Donc, cela revient à l’un des
Ma convention de nommage pour les index et les contraintes:
Où {xx} est un numéro de séquence à 2 chiffres, commençant à 01 pour chaque type de contrainte par table. La clé primaire ne reçoit pas de numéro de séquence car il ne peut y en avoir qu'un. Les significations du suffixe alpha à 2 caractères sont les suivantes:
Je souhaite généralement regrouper les données de catalogue de métadonnées/système par objet de contrôle plutôt que par type d'objet.
J'utilise UQ. Le K au Royaume-Uni me fait penser au K tel qu'il est utilisé dans PK et FK. Eh bien, je pense quand même au Royaume-Uni; il est ironique que cela soit un préfixe pour UNIQUE quand le Royaume-Uni soulève tant d’autres associations =)