2005/12/09

Riprendiamo a pubblicare su Note Notturne

Visto che devo lavorare un po' di notte, almeno aggiorniamo anche il blog, così forse mi faccio compagnia da solo.

Cosa c'è da fare stasera? Abbiamo iniziato una storia che dice:

Collegamento registrazioni: quando modifico una registrazione i collegamenti devono rimanere quelli della registrazione precedente.


In altre parole, in PAFlow è possibile modificare le registrazioni mantenendo traccia delle modifiche fatte. E' anche possibile collegare tra di loro le registrazioni. Purtroppo, però, in questo momento, quando una registrazione viene modificata i collegamenti con le altre registrazioni scompaiono. In effetti, non vengono cancellati, ma non sono più rintracciati come tali.

Da dove nasce questo problema? Bisogna guardare a come sono organizzate le registrazioni sul database. Ad ogni registrazione corrispondono una o più righe della tabella registrazioni, una per ogni versione della registrazione stessa. Ogni riga ha un identificativo di riga (id_registrazione) che identifica univocamente la riga. Ogni registrazione quindi ha più di un id_registrazione associato.

Le registrazioni sono collegate tra di loro tramite la tabella registration_link, nella quale sono memorizzati due id_registrazione. E qui avviene il problema: quando c'è una modifica, viene generata una nuova riga per la registrazione, e quindi un nuovo id_registrazione. Quindi, i collegamenti precedenti non sono più rintracciabili.

La soluzione che abbiamo pensato di adottare parte dalla seguente considerazione: le modifiche alle registrazioni non modificano i collegamenti esistenti. Quindi, abbiamo deciso di inserire nella tabella registration_link non l'id_registrazione corrente, ma quello del primo inserimento di quella registrazione. Corrispondentemente, useremo tale id_registrazione quando dovremo fare le ricerche. Al lavoro, dunque!


Nessun commento: