Les conventions de dénomination sont importantes, et la clé primaire et la clé étrangère ont des conventions couramment utilisées et évidentes ( PK_Table
et FK_Table_ReferencedTable
, respectivement). La IX_Table_Column
dénomination des index est également assez standard.
Qu'en est-il de la contrainte UNIQUE? Existe-t-il une convention de dénomination communément acceptée pour cette contrainte? J'ai vu UK_TableName_Column
, UQ_TableName_Column
et quelqu'un recommande AX_TableName_Column
- je ne sais pas d'où cela vient.
J'en 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 UK
avocat.
Je voudrais simplement voir s'il existe un consensus sur la dénomination la plus répandue, ou un bon raisonnement pour expliquer pourquoi l'un a plus de sens que les autres.
la source
U
. Quel est leQ
stand pour?FK_TargetTable_SourceTable
? Pouvez-vous s'il vous plaît élaborer.Réponses:
Je pense que ce n'est pas une clé: c'est une contrainte.
Il pourrait bien sûr être utilisé comme clé et identifier de manière unique une ligne, mais ce n'est pas la clé.
Un exemple serait que la clé est "ThingID", une clé de substitution utilisée à la place de ThingName la clé naturelle. Vous devez toujours contraindre ThingName: il ne sera pas utilisé comme clé.
J'utiliserais également UQ et UQC (si groupés).
Vous pouvez utiliser un index unique à la place et choisir "IXU". Selon la logique employée, un index est également une clé, mais seulement lorsqu'il est unique. Sinon, c'est un index. Donc, nous commencerions par
IK_columnname
pour les index uniques etIX_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: février 2013. Depuis SQL Server 2008, les index peuvent également avoir des filtres. Les contraintes ne peuvent pas
Donc, cela revient à l'un des
la source
Ma convention de dénomination pour les indices 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 n'obtient 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:
Je souhaite généralement regrouper les métadonnées / données du catalogue système par objet de contrôle plutôt que par type d'objet.
la source
J'utilise UQ. Le K au Royaume-Uni me fait penser à K tel qu'il est utilisé dans PK et FK. Eh bien, après je pense au Royaume-Uni de toute façon; ironique que cela devrait être un préfixe pour UNIQUE lorsque UK évoque tant d'autres associations =)
la source