Eu tenho uma tabela com uma chave primária composta (composta por 4 colunas) que é usada para garantir que nenhuma duplicata seja inserida na tabela. Agora estou precisando de uma nova tabela que precisará referenciar as chaves nesta tabela como chaves estrangeiras.
Minha pergunta é qual abordagem é mais eficiente para velocidades de pesquisa:
1) Crio a nova tabela, incluindo todas as 4 colunas, e as refiro todas em uma chave estrangeira.
ou
2) Crie uma nova coluna de identidade na tabela Chave Primária e use-a como uma chave estrangeira na nova tabela.
Espera-se que esse banco de dados retenha uma quantidade muito grande de dados, então eu o criei até agora com o objetivo de minimizar a quantidade de dados mantidos em cada tabela. Com isso em mente, a opção 2 seria a melhor abordagem, pois salvarei 2 colunas int e uma coluna datetime para cada linha, mas quero evitar aumentar o tempo de pesquisa, se desnecessário.
INT IDENTITY
) nesse caso - torna a referência e a junção dessa tabela muito mais fácil. Para evitar duplicatas, coloque uma restrição UNIQUE nessas quatro colunas. Também: chaves primárias estreitas são muito melhor por razões de desempenho (se eles são usados como chave de cluster)