Non ho bisogno di un consiglio tecnico, solo del vostro parere in merito a quale sia la soluzione piú elegante possibile per risolvere questo tipo di caso.
Saró breve:
Form di inserimento dell'elemento A nel db.
Nello stessa pagina è presente un sotto form per l'inserimento di elementi di tipo B legati all'elemento padre A.
Questi elementi B vengono sparati nel DB via Ajax.
Ovviamente nel DB gli elementi B hanno un foreign key con l'id dell'elemento A al fine di poter sempre ricreare l'albero correttamente.
Il problema nasce proprio in questa fase perchè vorrei avere la certezza che la soluzione adottata sia la migliore fattibile.
L'elemento B viene mandato via Ajax con il valore del foreign key verso A contenente l'id di sessione.
Se l'insert dell'elemento A va a buon fine un update aggiorna i foreign_key degli elementi B con quell'id di sessione agganciandoli all'id dell'elemento A appena creato e viene rigenerato l'id di sessione.
Se l'insert del B fallisce o l'utente chiude il browser quegli elementi B giá inseriti resteranno lí e ho messo su un garbage collector che ripulisce tutto lo scaduto.
E' una soluzione che mi consente in caso di errore nel riempimento del form principale recuperare via POST i valori del form principale ovviamente e, tramite select basata sul session_id, anche gli elementi B giá inseriti e che quindi non dovranno essere nuovamente ricreati.
Questa soluzione è la ottimale ? C'è qualcosa di meglio per gestire una soluzione del genere ?