Considera che un utente, a metà della registrazione, potrebbe doversi allontanare dal pc o potrebbe andar giù la linea.

Non vorrai mica obbligarlo a reinserire tutto, no? Questo è il modo migliore per perdere utenti. I profili incompleti, su web, sono una cosa normalissima, il concetto di integrità dei dati non si sposa perfettamente col web.

Secondo me quindi all'utente va immediatamente assegnato (e spedito per email) un id che va memorizzato sul db con una bella commit in modo che non ci sia pericolo di perderlo e in modo che lui possa risalire al suo profilo e completarlo in un secondo momento.

Da quel momento in poi, tutti i dati che inserisce, pagina per pagina o anche pagine incomplete, vanno memorizzati sul db.

Quando tutti i dati obbligatori sono stati inseriti si accende un flag che indica che quel profilo è completo e operativo.

Se poi vuoi fare pulizia, potresti, ogni settimana, lanciare un processino di cancellazione dei profili incompleti più vecchi di tre mesi.

Tutto questo si chiama Client Care: sei tu che devi adeguarti alle esigenze dei tuoi utenti, non il contrario.

Ciao