As convenções de nomenclatura são importantes, e a chave primária e a chave estrangeira costumam usar convenções óbvias ( PK_Table
e FK_Table_ReferencedTable
, respectivamente). A IX_Table_Column
nomeação de índices também é bastante padrão.
E a restrição UNIQUE? Existe uma convenção de nomenclatura comumente aceita para essa restrição? Eu já vi UK_TableName_Column
, UQ_TableName_Column
e alguém recomendando AX_TableName_Column
- não sei de onde isso vem.
Normalmente, eu uso, UQ
mas não gosto particularmente, e não gosto de ter que defender minha escolha de usá-lo contra um UK
advogado.
Eu simplesmente gostaria de ver se existe um consenso sobre a nomeação mais prevalente ou um bom raciocínio sobre por que um faz mais sentido do que os outros.
sql
sql-server
naming-conventions
unique-constraint
Kirk Broadhurst
fonte
fonte
U
. Para queQ
serve?FK_TargetTable_SourceTable
? Você pode por favor elaborar.Respostas:
Meu pensamento é que não é uma chave: é uma restrição.
Ele poderia ser usado como uma chave é claro, e identifica com exclusividade uma linha, mas não é a chave.
Um exemplo seria que a chave é "ThingID", uma chave substituta usada no lugar de ThingName a chave natural. Você ainda precisa restringir o ThingName: embora não seja usado como chave.
Eu também usaria UQ e UQC (se agrupado).
Você poderia usar um índice exclusivo e escolher "IXU". Pela lógica empregada, um índice também é uma chave, mas somente quando único. Caso contrário, é um índice. Então começamos com
IK_columnname
índices exclusivos e índicesIX_columnname
não exclusivos. Maravilhoso.E a única diferença entre uma restrição exclusiva e um índice exclusivo são as colunas INCLUDE.
Edit: Feb 2013. Desde o SQL Server 2008, os índices também podem ter filtros. Restrições não podem
Então, tudo se resume a um dos
fonte
Minha convenção de nomenclatura para índices e restrições:
Onde {xx} é um número de sequência de 2 dígitos, começando em 01 para cada tipo de restrição por tabela. A chave primária não recebe um número de sequência, pois pode haver apenas um. Os significados do sufixo alfa de 2 caracteres são:
Geralmente, quero agrupar os dados de catálogo de metadados / sistema pelo objeto de controle e não pelo tipo de objeto.
fonte
Eu uso UQ. O K no Reino Unido me faz pensar em K como é usado em PK e FK. Bem, depois de pensar no Reino Unido de qualquer maneira; irônico que esse seja um prefixo para UNIQUE quando o Reino Unido apresentar tantas outras associações =)
fonte