Modifica dati utente

Ciao gianni,

vorrei un consiglio se non chiedo troppo, sperando di non sbagliare ad inserire qui la mia domanda.

Se un utente registrato ha la necessita di modificare tutti o alcuni dei suoi dati puo' andare in una pagina contenente il solito form che deve compilare con i nuovi dati.

Al submit questi dati devono essere inviati a tizio, che ne controllera' la correttezza  e provvedera' ad aggiornare il db se i dati sono corretti.

Il  mio dubbio e' su come effettuare l'invio dei dati.

Avevo pensato all'invio della pagina tramite email ma tra  i miei vincoli di realizzazione c'e' l'invio di e-mail solo testuali, quindi l'unica alternativa che ho trovato e' la creazione di una tabella utenti parallela nella quale vengono inseriti solo i nuovi dati.Al submit viene inserito il nuovo record nella tabella parallela e inviata un e-mail di notifica a tizio che fara' quanto deve.

In questo modo ottengo una duplicazione di dati dei quali alcuni inutili.

Come potrei evitarla?c'e' qualche altro modo per inviare i dati a tizio?

Grazie mille.

 :bye:

inviato 10 anni fa
purpitta
X 0 X

Non mi è chiaro come "tizio" dovrà interagire successivamente col sistema per confermare o meno la modifica dei dati.

E' importante saperlo perché questa operazione può risultare più o meno laboriosa a seconda di come sono conservati i dati modificati.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

I dati sono memorizzati in un db.

Se uso una tabella parallela l'idea e' quella di fargli una pagina con due form uno con i vecchi dati che prendo con una select dalla tabella utenti e uno con i nuovi dati che prendo da utenti parallela....la pagina sarebbe tipo:

vecchi dati           nuovi dati

nome                   nome1

cog                      cog1

tel                       ________

                           | inserisci |

                           -------------

se i nuovi dati vengono accettati si fa un update del db.

Se invece riesco a trovare un altro modo vorrei comunque che a tizio venga visualizzata la pagina con

nuovi dati

nome1

.....

ecc.

Spero di aver risposto alla tua domanda.

risposto 10 anni fa
purpitta
X 0 X

Allora credo che le 2 tabelle siano l'approccio migliore. Ovviamente la tabella dei dati "provvisori" sarà quasi sempre vuota, quindi non costituirà un peso aggiuntivo al sistema.

Hai dei dubbi su questa soluzione?

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

effettivamente questa soluzione non mi convince tanto, mi sembra di avere troppa duplicazione di dati.....

In ogni caso la tabella provvisoria potrei farlo in due modi:

1) identica a quella non provvisoria.

    in questo modo avro' sempre dei campi vuoti...quelli con i dati non modificati

2) una tabella fatta da tre campi: id utente, nome campo, valore campo.

    in questo modo i campi saranno sempre pieni ma rischio di farla crescere troppo in numero di record....un record per ogni dato da modificare.

La soluzione migliore quale e'?perche'?e' meglio mantenere informazioni inutili(campi vuoti) o avere piu' record?

grazie

risposto 10 anni fa
purpitta
X 0 X

Secondo me ti coniene fare una tabella praticamente identica a quella contenente i dati effttivi. Questa tabella sarà quasi sempre senza record, vuota, praticamente inesistente in termini di occupazione di disco. Pertanto perché preoccuparsi? Non ci sarà una duplicazione di dati perché in questa tabella non ci saranno dati.

Solo quando un utente vuole modificare i suoi dati verrà inserito un record in questa tabella "immagine", così sarà anche semplice sapere quanti utenti hanno richieso la modifica dei dati, ovvero il numero di richieste pendenti.

Inoltre rendere definitive le modifiche comporterà un semplice aggiornamento di una riga della tabella principale con i dati di una riga della tabella secondaria.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

giusto....evito una crescita esponenziale cosi.....

Grazie mille per il tuo supporto... :)

risposto 10 anni fa
purpitta
X 0 X

se ho inteso bene il problema credo ti converebbe tenere tutto in un unica tabella ed aggiugnere un campo booleano 'accettato' o qualcosa del genere.... :bye:

risposto 10 anni fa
Xscratch
X 0 X
se ho inteso bene il problema credo ti converebbe tenere tutto in un unica tabella ed aggiugnere un campo booleano 'accettato' o qualcosa del genere.... :bye:

poiché serve conservare sia i dati originali sia quelli nuovi, in ogni caso servono 2 record. Se si usa una sola tabella bisogna usare un campo flag per distinguerli, invece se si usano 2 tabelle questo non serve. Ecco perché ho consigliato di usare 2 tabelle, approccio che oltre a far risparmiare spazio (il campo flag quasi sempre settato su "dato definitivo") garantisce una netta separazione tra i dati ufficiale e quelli proposti.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda