Su un dispositivo mobile, un set di operazioni è stato salvato nel DB locale con una data errata (perché la data di sistema è stata impostata in futuro). Quindi il dispositivo esegue regolarmente la sincronizzazione con un DB server, le operazioni errate sono state propagate al server.
Più tardi è stata rilevata la data errata dell'utente mobile e la data di sistema è stata ripristinata correttamente e l'utente ha ripreso il suo normale flusso di lavoro, spingendo ancora più dati sul server.
Quale dovrebbe essere la migliore strategia per pulire i dati da questo stato errato. Come suggerito in Accountants Do not Use Erasers , una voce errata (fattura ad esempio) dovrebbe essere compensata da una voce corrispondente negativa (nota di credito).
E se il problema riguardasse la data della voce? Come compensare una data sbagliata?
Più in generale qual è la migliore strategia per il rollback di un database a lungo termine dopo il commit dei dati? e come eseguire il rollback quando il database è sincronizzato su più sistemi?
NB: ho postato per primo in stackoverflow.com ma credo che qui sia un posto più appropriato.