Si vous ne souhaitez pas effectuer des exports/imports complets à chaque fois, ce que vous devez faire est d'avoir un champ "last_modified" dans chaque table qui contient une date à laquelle cette ligne a été modifiée pour la dernière fois. Ensuite, sur chaque synchronisation, enregistrez l'horodatage en cours et sur la synchronisation ultérieure, exécutez une requête comme:
SELECT * FROM TABLE OÙ last_modified> $ last_sync_timestamp
..et vous obtenez votre liste de lignes mises à jour. Notez que cela ne propagera pas les lignes qui seront supprimées des tables.
Au lieu de supprimer ces lignes, vous devez avoir un autre champ appelé "visibility" qui est basculé sur false lorsqu'un enregistrement est supprimé, et votre application modifiée pour que ces lignes ne soient pas affichées. Ensuite, demandez à votre code de synchronisation de supprimer les lignes "non visibles" de la table après un certain nombre de synchronisations.
Espérons que cela aide.
Commander http://stackoverflow.com/questions/1025812/synchronizing-an-sqlite-client-database-with-a-mysql-server-database – rwilliams