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.