Da risolvere il rischio di modifiche da più utenti in contemporanea ai dati
Sembra che da PHP non funzioni il SELECT FOR UPDATE e il LOCK TABLE.
Si dovrebbe però fare in modo da isolare le transazioni di modifica (I=isolation di ACID).
Si potrebbe aggiungere sul DB una tabella di lock (LOCK) fatta cosi:
id , tabella (varchar(20), user (varchar), data (DATE)
dove:
-id int PK autoincrement
tabella può avere come valori possibilli: "morance", "casa", "persone" o "utenti"
user nome dell'utente che sta bloccando la tabella
data data del blocco della tabella
Il meccanismo è il seguente
Ad es: per la gestione morance:
Ogni volta che si deve effettuare una modifica sulla tabella morance (nel file mod_moranca.php),:
si controlla che non vi siano presenti record sulla tabella LOCK con tabella = 'moranca", altrimenti si visualizza un msg di warning "impossibile modificare, altro utente sta modificando le morance".
e si ritorna indietro.
Altrimenti (nessuno sta modificando le morance)
Si inserisce un record nella tabella di LOCK (tabella ='morance')
-nel file modifica_moranca.php, dopo l'ultima modifica, si elimina il record dalla tabella LOCK
Stesso discorso per delete ed insert morance
Lo stesso meccanismo deve essere utilizzato per la gestione case, gestione persone e gestione utenti.
Da risolvere il rischio di modifiche da più utenti in contemporanea ai dati Sembra che da PHP non funzioni il SELECT FOR UPDATE e il LOCK TABLE.
Si dovrebbe però fare in modo da isolare le transazioni di modifica (I=isolation di ACID). Si potrebbe aggiungere sul DB una tabella di lock (LOCK) fatta cosi: id , tabella (varchar(20), user (varchar), data (DATE) dove: -id int PK autoincrement
Il meccanismo è il seguente Ad es: per la gestione morance: Ogni volta che si deve effettuare una modifica sulla tabella morance (nel file mod_moranca.php),:
Stesso discorso per delete ed insert morance
Lo stesso meccanismo deve essere utilizzato per la gestione case, gestione persone e gestione utenti.