Scenari di dati

di il
2 risposte

Scenari di dati

Ciao
Sto cercando uno spunto o suggerimento per la gestione di scenari di dati.
Mi spiego meglio:
Ho una tabella anagrafica principale relazionata ad altre tabelle che mi permettono di gestire delle relazioni molti a molti verso altre tabelle di anagrafica.
Mediante query complesse eseguo dei calcoli i cui risultati vengono riportati in report.
Con delle tabelle temporali gestisco le revisioni dei dati nel tempo.
E fin qui funziona tutto alla grande.

Ora però ho la necessità di creare degli scenari, ovvero uno stato di dati in tutte le tabelle di cui sopra, che servono solo a fini di studio per valutare delle possibili situazioni. Tali dati non entreranno in produzione, ma devono comunque essere salvati ed analizzati.
Sembrerebbe semplice fare una copia del db e lavorare su quello, il problema pero' e' che se nel db variano tutta una serie di condizioni, tali condizioni devono essere riportate anche nel db copia. E sarebbe comunque difficile valutare cosa duplicare e cosa no.

Pensavo a degli snapshot ma mi e' difficile poi capire come riprendere i dati e farli rianalizzare dalle query che calcolano i risultati. Anche in questo caso dovrei duplicare le query per farle lavorare sugli snapshot. Il che comporta che ad ogni modifica di una query, bisogna riportare la modifica anche in quella che serve gli snapshot.

Qualche suggerimento?

2 Risposte

  • Re: Scenari di dati

    Perché non potrebbe andare bene un bakup restore?

    Per le tabelle temporali?
  • Re: Scenari di dati

    Ciao
    Non ho mai usato un backup restore e non saprei come impiegarlo.
    Comunque credo di aver trovato la soluzione.

    Lo schema generale e' impostato per gestire piu' progetti (relativi all'applicazione di frontend). Ovvero, in ogni tabella anagrafica e' impostato un idProgetto. Le query e le viste vengono sempre filtrate almeno per idProgetto.
    Per creare dei dati fake senza fare troppe modifiche ho pensato di creare dei sottoprogetti, ovvero ogni progetto puo' avere dei progetti figli.
    Ogni sottoprogetto avrà un campo idProgettoPadre che farà riferimento al Progetto padre.
    Ogni taballa anagrafica avrà un campo in piu', idRecordPadre, relativo all'id del record Padre nel caso volessi fare esperimenti con i dati di un record e confrontarli con gli originali.

    Quindi ora tutti i record fake li posso inserire nelle tabelle che già esistono pero' saranno "marcati" con idSottoProgetto e/o idRecordPadre.
    Quando vorro' verificare i calcoli eseguti dalle query mi basterà filtrare per idSottoProgetto o per idRecordPadre o per entrambi entrambi.

    Quindi, nessuna modifica alle query/viste esistenti, tutto relazionato e nessuna operazione di salvataggio o ripristino. Solo qualche WHERE dove servirà.

    Anche eliminare i dati fake sarà una operazione semplicissima perche' basterà filtrare per idSottoProgetto e/o idRecordPadre.
    Penso sia la soluzione migliore e facilmente implementabile.

    Non vedo controindicazioni ma se dovessi sbagliarmi, felice di ricevere qualche feedback
Devi accedere o registrarti per scrivere nel forum
2 risposte