Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

La meilleure façon de stocker le trimestre et l'année dans SQL Server ?

Si vous devez utiliser une année et un trimestre distincts au lieu d'une date (puisque vous semblez avoir des exigences de déclaration spécifiques), j'opterais pour un tinyint pour trimestre et smallint pour l'année et stockez-les dans le PAYMENT tableau lui-même.

Je ne le stockerais pas dans une autre table. C'est mauvais car :

  • Vous devez vous assurer que vous avez produit suffisamment d'années/de trimestres
  • Vous devez joindre et utiliser une clé étrangère

Si vous stockez les données avec l'enregistrement, cela améliorera les performances lors des lectures. Votre table peut être petite, mais il est toujours bon de garder à l'esprit les performances.

POURQUOI

Imaginons que vous ayez besoin d'obtenir

Dans ce cas, vous auriez besoin d'un index de couverture sur tous les articles et n'aide toujours pas puisque votre requête concerne un trimestre spécifique et non un trimestre. Le fait d'avoir les données sur la table, cependant, aidera avec un plan d'exécution plus léger.