Sto scrivendo una piccola app che gestisce un paio di ricette. Ho un database MySQL che viene utilizzato dal mio livello di persistenza dei dati. Ho bisogno di qualche tipo di id nei miei oggetti di business che rappresentano le ricette per usare il mio livello di persistenza.
Attualmente sto solo chiamando SELECT LAST_INSERT_ID()
sul mio database dopo aver inserito una nuova ricetta e poi assegnato quell'ID. In un progetto nel mio lavoro part time usiamo un approccio diverso. Generiamo gli ID nella nostra applicazione prima di inserirli e quindi usarli da lì.
Penso che il mio attuale approccio sia migliore, perché io genero solo un int (l'altra applicazione usa un id-generator che influenza il tempo ecc.) che dovrebbe essere più veloce per le ricerche e posso ridimensionare il sistema per più applicazioni (perché io può inserire le chiamate insert e last_insert_id nella stessa transazione) e posso facilmente eseguire il rollback, se qualcosa va storto durante l'esecuzione della transazione.
Il mio ragionamento è giusto? O c'è qualcosa che mi manca?