sql >> Base de Datos >  >> RDS >> Sqlserver

¿La mejor manera de almacenar el trimestre y el año en SQL Server?

Si tiene que usar un año y un trimestre separados en lugar de una fecha (ya que parece tener requisitos de informes específicos), optaría por un tinyint para trimestre y smallint por año y almacenarlos en el PAYMENT mesa en sí.

No lo guardaría en una mesa diferente. Esto es malo ya que:

  • Tienes que asegurarte de haber producido suficientes años/trimestres
  • Tienes que unirte y usar una clave externa

Si almacena los datos con el registro, ayudará al rendimiento en las lecturas. Su tabla puede ser pequeña, pero siempre es bueno tener en cuenta el rendimiento.

POR QUÉ

Imaginemos que necesita obtener

En este caso, necesitaría un índice de cobertura en todos los artículos y aún no ayuda ya que su consulta es para un trimestre específico y no para un trimestre del año. Sin embargo, tener los datos sobre la mesa ayudará con un plan de ejecución más ligero.