Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il modo migliore per archiviare trimestre e anno in SQL Server?

Se devi utilizzare anno e trimestre separati invece di una data (dato che sembri avere requisiti di rendicontazione specifici), sceglierei un tinyint per trimestre e smallint per anno e salvarli nel PAYMENT tabella stessa.

Non lo memorizzerei in una tabella diversa. Questo è male poiché:

  • Devi assicurarti di aver prodotto anni/trimestri sufficienti
  • Devi unirti e utilizzare una chiave esterna

Se memorizzi i dati con il record, aiuterà le prestazioni sulle letture. Il tuo tavolo potrebbe essere piccolo ma è sempre bene tenere a mente le prestazioni.

PERCHÉ

Immaginiamo che tu debba ottenere

In questo caso, avresti bisogno di un indice di copertura su tutti gli articoli e ancora non aiuta poiché la tua query è per un trimestre specifico e non per un trimestre. Avere i dati sul tavolo, tuttavia, aiuterà con un piano di esecuzione più leggero.