Consiglio su quale logica è meglio

di il
1 risposte

Consiglio su quale logica è meglio

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.

1 Risposte

  • Re: Consiglio su quale logica è meglio

    La struttura variabile è possibile, ma considerata la semplicità del lavoro la lascerei perdere.
    Razionalizza, utilizza un certo numero di campi e basta.
    Riguarda ai ricavi non ha un gran senso ricalcolarli (lento) se non variano; in ogni caso nulla ti vieta di mettere un campo generico quantità con default a 1
    Nel tuo 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
    Avrai ad esempio
    sorgente_ricavo (Camere, ricavi interni)
    tipo_ricavo (Camere, bar, ristorante, lavanderia, garage)
    numero
    prezzo_unitario
    totale
Devi accedere o registrarti per scrivere nel forum
1 risposte