Sto lavorando su una funzione che tirerà molte (diciamo 1000-5000) righe da un database, le mostrerà all'utente e permetterà all'utente di modificarle. Questa modifica può comportare la modifica del testo; aggiungere righe all'inizio, al centro o alla fine del set di dati; e / o cancellazione di righe. L'ordine delle righe è importante (ad esempio, non è possibile spostare una riga appena aggiunta alla fine del set di dati.)
In qualsiasi momento della modifica, l'utente può premere un pulsante di salvataggio, a quel punto le modifiche vengono registrate nel database.
Ecco dove arriva la mia domanda: esiste un modello accettato per come fare questo tipo di cose? Finora, ho appena cancellato tutte le righe originariamente tirate e poi reinserisco le righe appena salvate. Tuttavia, dato che ogni riga ha un ID auto-incrementato, sto iniziando a preoccuparmi (puoi vedere come un singolo utente potrebbe facilmente far esplodere 100.000 ID in pochissimo tempo). Ad un certo punto in futuro, potrei anche avere chiavi esterne che dipendono da questi ID di file e, naturalmente, questo metodo causerà il caos su di loro.
D'altro canto, la modifica di ogni singola riga modificata, incluso tenere traccia delle eliminazioni e delle aggiunte, sembra una ricetta per gli errori.