Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Melhor maneira de armazenar trimestre e ano no SQL Server?


Se você tiver que usar ano e trimestre separados em vez de uma data (já que parece ter requisitos específicos de relatório), eu usaria um tinyint para trimestre e smallint por ano e armazená-los em PAYMENT própria mesa.

Eu não iria armazená-lo em uma tabela diferente. Isso é ruim porque:
  • Você precisa ter certeza de que produziu anos/trimestres suficientes
  • Você precisa participar e usar uma chave estrangeira

Se você armazenar os dados com o registro, ajudará o desempenho nas leituras. Sua mesa pode ser pequena, mas é sempre bom ter em mente o desempenho.

POR QUE


Vamos imaginar que você precisa obter

Nesse caso, você precisaria de um índice de cobertura em todos os itens e ainda não ajuda, pois sua consulta é para trimestre específico e não para trimestre. Ter os dados na tabela, no entanto, ajudará com um plano de execução mais leve.