Las convenciones de nomenclatura son importantes, y la clave primaria y la clave externa tienen convenciones comúnmente utilizadas y obvias ( PK_Table
y FK_Table_ReferencedTable
, respectivamente). La IX_Table_Column
denominación de los índices también es bastante estándar.
¿Qué pasa con la restricción ÚNICA? ¿Existe una convención de nomenclatura comúnmente aceptada para esta restricción? He visto UK_TableName_Column
, UQ_TableName_Column
y alguien que recomienda AX_TableName_Column
, no sé de dónde viene eso.
Normalmente lo he usado, UQ
pero no me gusta particularmente, y no disfruto tener que defender mi elección de usarlo contra un UK
defensor.
Simplemente me gustaría ver si existe un consenso sobre los nombres más frecuentes, o un buen razonamiento de por qué uno tiene más sentido que los demás.
fuente
U
. ¿Para qué sirve elQ
stand?FK_TargetTable_SourceTable
? ¿Puedes por favor elaborar?Respuestas:
Mi pensamiento es que no es una clave: es una restricción.
Que podría ser utilizado como una clave, por supuesto, e identifica de forma única una fila, pero no es la clave.
Un ejemplo sería que la clave es "ThingID", una clave sustituta utilizada en lugar de ThingName, la clave natural. Todavía necesita restringir ThingName: sin embargo, no se usará como clave.
También usaría UQ y UQC (si está agrupado).
En su lugar, podría usar un índice único y elegir "IXU". Según la lógica empleada, un índice también es una clave, pero solo cuando es único. De lo contrario, es un índice. Entonces, comenzaríamos con los
IK_columnname
índices únicos y los índicesIX_columnname
no únicos. Maravilloso.Y la única diferencia entre una restricción única y un índice único es INCLUIR columnas.
Edición: febrero de 2013. Desde SQL Server 2008, los índices también pueden tener filtros. Las restricciones no pueden
Entonces, se reduce a uno de
fuente
Mi convención de nomenclatura para índices y restricciones:
Donde {xx} es un número de secuencia de 2 dígitos, comenzando en 01 para cada tipo de restricción por tabla. La clave primaria no obtiene un número de secuencia ya que solo puede haber uno. Los significados del sufijo alfa de 2 caracteres son:
En general, quiero agrupar los metadatos / datos del catálogo del sistema por el objeto de control en lugar de por tipo de objeto.
fuente
Yo uso UQ. La K en el Reino Unido me hace pensar en K como se usa en PK y FK. Bueno, después de pensar en Reino Unido de todos modos; Irónico que esto debería ser un prefijo para ÚNICO cuando el Reino Unido trae tantas otras asociaciones =)
fuente