Buongiorno,
devo salvare dei dati in un db MySql ma non sono sicuro di quale sia l'approccio logico migliore.
In pratica devo salvare un budget su db.
Queto budget è composto n righe ognuna rappresenta un centro di ricavo e relativo segmento ( es Camere - Diretti, Camere - TO, Servizi interi - Bar, Servizi interni - Ristorante, Ricavi esterni - Lavanderia, Ricavi esterni - Garage ecc ).
La difficoltà sta che per ogni centro di ricavo/segmento ho campi diversi da salvare, per esempio:
Camere -> n_camere_vendute, prezzo_unitario
Ricavi interni - Bar -> n_consumazioni, prezzo_unitario
Ricavi interni - Ristorante-> n_coperti, prezzo_unitario
Ricavi esterni - Lavanderia -> ricavi_totali
Ricavi esterni - Garage -> ricavi_totali
Tutte le righe poi hanno uno sviluppo su mesi quindi nel db avrò una chiave tripla fatta da id_centro_ricavo, id_segmento, mese
La domand quindi è come fare a salvare tutto su db?
le opzioni che ho trovato sono 3 e vorrei capire quale è la migliore o comunque quella più corretta da un punto di vista progettuale.
1) Salvo tutto in una tabella con n° colonne una per ogni tipologia di dettaglio. Avrò quindi molti valori null per riga.
2) Cerare di razionalizzare i campi, per esempio le camere vendute, n_coperti e n_consumazioni sono tutti elementi di vendita e quindi creo una solo colonna in cui salvare questi valori che assuno poi un significato a seconda del centro di ricavo e segmento relativo.
3) Creare n° tabelle per ogni macro gruppo
Quello che mi fa riflettere sono anche interrogazioni future in quanto se volessi estrarre il totale ricavi per mese, mi trovo alcune righe in cui il ricavo va calcolato ( es n_camere_vendute * prezzo_unitario ) e altre righe che per natura ho salvato direttamente un valore.
Dovrei quindi utilizzare dei case-when per decidere in base al centro di ricavo / segmento se serve calcolare oppure semplicemente riportare il valore salvato.
Questa soluzione è pulita oppure sa di forzatura?
Grazie molte, spero di aver descritto il problema al meglio, in caso scrivetemi i dubbi che cerco di chiarire.