Namenskonventionen sind wichtig, und der Primärschlüssel und Fremdschlüssel haben häufig verwendet und offensichtliche Konventionen ( PK_Table
und FK_Table_ReferencedTable
sind). Die IX_Table_Column
Benennung für Indizes ist ebenfalls ziemlich Standard.
Was ist mit der EINZIGARTIGEN Einschränkung? Gibt es eine allgemein akzeptierte Namenskonvention für diese Einschränkung? Ich habe gesehen UK_TableName_Column
, UQ_TableName_Column
und jemand zu empfehlen AX_TableName_Column
- ich weiß nicht , woher das kommt.
Ich habe es normalerweise benutzt, UQ
aber ich mag es nicht besonders, und es macht mir keinen Spaß, meine Entscheidung, es zu benutzen, gegen einen UK
Anwalt verteidigen zu müssen .
Ich würde einfach gerne sehen, ob es einen Konsens über die am weitesten verbreitete Benennung gibt oder eine gute Begründung dafür, warum eine sinnvoller ist als die anderen.
quelle
U
. Wofür steht derQ
Stand?FK_TargetTable_SourceTable
? Können Sie bitte näher darauf eingehen?Antworten:
Meiner Meinung nach ist es kein Schlüssel, sondern eine Einschränkung.
Es könnte natürlich als Schlüssel verwendet werden und identifiziert eine Zeile eindeutig, aber es ist nicht der Schlüssel.
Ein Beispiel wäre, dass der Schlüssel „ThingID“ ist, ein Ersatzschlüssel anstelle von ThingName der natürliche Schlüssel verwendet. Sie müssen noch beschränken ThingName: Es wird nicht jedoch als Schlüssel verwendet werden.
Ich würde auch UQ und UQC verwenden (wenn gruppiert).
Sie können stattdessen einen eindeutigen Index verwenden und "IXU" wählen. Nach der verwendeten Logik ist ein Index auch ein Schlüssel, jedoch nur dann, wenn er eindeutig ist. Ansonsten ist es ein Index. Dann beginnen wir mit
IK_columnname
eindeutigen Indizes undIX_columnname
nicht eindeutigen Indizes. Wunderbar.Der einzige Unterschied zwischen einer eindeutigen Einschränkung und einem eindeutigen Index besteht in INCLUDE-Spalten.
Bearbeiten: Februar 2013. Seit SQL Server 2008 können Indizes auch Filter haben. Einschränkungen können nicht
Es kommt also auf eines von
quelle
Meine Namenskonvention für Indizes und Einschränkungen:
Dabei ist {xx} eine zweistellige Folgenummer, beginnend bei 01 für jeden Einschränkungstyp pro Tabelle. Der Primärschlüssel erhält keine Sequenznummer, da es nur eine geben kann. Die 2-Zeichen-Alpha-Suffix-Bedeutungen sind:
Im Allgemeinen möchte ich Metadaten / Systemkatalogdaten nach dem steuernden Objekt und nicht nach Objekttyp gruppieren.
quelle
Ich benutze UQ. Das K in Großbritannien lässt mich an K denken, wie es in PK und FK verwendet wird. Nun, nachdem ich sowieso an Großbritannien gedacht habe; ironisch, dass dies ein Präfix für UNIQUE sein sollte, wenn Großbritannien so viele andere Assoziationen hervorbringt =)
quelle