Come possiamo eseguire il rollback di un database sincronizzato su più sistemi?

4

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.

    
posta Yahia 13.01.2016 - 14:37
fonte

1 risposta

1

Per prima cosa devi decidere come apportare questa modifica. Aggiorna tutti i campi della data di fatturazione necessari oppure annulla la fattura e copia / ricostruisci tutti i dati con una data diversa e eventualmente un numero di fattura.

Una volta che puoi codificare effettuando questa modifica, puoi decidere come applicarlo a molte fatture. Se ritieni che il problema continui a derivare dalle importazioni di app mobili, inizia ad allegare una sorta di ID batch a tutti i record importati da ciascun dispositivo a ogni importazione. Data e ora insieme a qualsiasi altro dispositivo e / o indicatore utente che è possibile includere. Probabilmente finirai con una tabella batch e un ID batch come chiave esterna nella tabella delle fatture.

Idealmente, puoi semplicemente filtrare un gruppo di fatture per utente e una sorta di intervallo di date e modificarle tutte da Data A a Data B.

Qualcuno con conoscenza del dominio deve essere coinvolto in questo processo su cosa fare e le ramificazioni e poi alcuni manager possono prendere una decisione.

    
risposta data 13.01.2016 - 19:27
fonte

Leggi altre domande sui tag