martedì 30 luglio 2013

La storicizzazione (parte I)

Per quanto possa sembrare strano, quando si gestisce un database servono sempre dei campi di supporto alla storicizzazione.
Il primo campo che mi viene in mente è DATA_FINE_VALIDITA. Questa data permette, ad esempio, di filtrare in una query successiva, i dati ancora validi da quelli che non lo sono più e sono conservati solo per ragioni storiche. Con questo campo abbiamo già raggiunto un buon livello di storicizzazione. Adesso abbiamo un campo che può essere utilizzato come flag nelle query (se NULL il dato è valido, se compilato il dato non è più valido). La data porta però, insieme a sé, anche l'informazione su quando la validità è cessata: quindi con pochi byte in più per ogni record, è possibile tracciare informazioni più di dettaglio. Il campo è gestito sia applicativamente (facendo un update del campo del record e non la delete del record, che magari sarebbe impossibile per motivi di chiavi esterne), sia direttamente in banca dati valorizzandolo manualmente.
Un secondo campo utile da affiancare al precedente è UTENTE_FINE_VALIDITA. Possiamo quindi decidere di tenere traccia di chi ha effettuato l'operazionee non solo quando. Come nel caso del campo precedente, possiam gestire il campo sia applicativamente (facendo un update del campo del record e non la delete del record), sia direttamente in banca dati valorizzandolo manualmente. Nel caso in cui si proceda via applicativo, l'utente sarà un utente applicativo, altrimenti si potrebbe usare un utente fittizio o un'utenza dedicata all'amministratore del sistema.

Nessun commento:

Posta un commento