Voglio ottenere una sincronizzazione del database tra il mio database del server e un'applicazione client. Il server eseguirà MySQL e le applicazioni potrebbero eseguire diverse tecnologie di database, la loro implementazione non è importante.
Ho un database MySQL online e accessibile tramite una API che ho scritto in PHP (solo un dettaglio).
La mia applicazione client viene spedita con una copia dei dati online. Con il passare del tempo il mio obiettivo è controllare eventuali modifiche nel database online e rendere questi aggiornamenti disponibili all'app client tramite una chiamata API, inviando una data a un endpoint API corrispondente alla data dell'aggiornamento dell'app, la risposta sarebbe essere un JSON pieno di tutti i nuovi oggetti e oggetti aggiornati ed eliminare gli ID, questo rende possibile aggiornare l'archivio locale in modo appropriato.
In sostanza voglio fare questo: link
La mia domanda riguarda i dettagli di implementazione.
-
Dovrei aggiungere una colonna alle mie tabelle del database con una data "ultima modifica"?
-
Poiché l'app client potrebbe essere molto obsoleta se è offline per un lungo periodo, vuol dire che non dovrei cancellare i dati dal database online ma avere un'altra colonna chiamata "cancella" impostata su
1
e una data di modifica aggiornata in modo appropriato? -
La mia query SQL controllerebbe semplicemente tutti i dati con una data modificata superiore alla data passata nella richiesta API dal client?
Mi sembra che ci sia molto di più ad avere un sacco di date ovunque. Inoltre, temo di dover mantenere molti vecchi dati per garantire che le vecchie versioni dell'app client abbiano sempre l'opportunità di eliminare parti dei loro dati quando sono in grado di sincronizzarsi.