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.