Keep track of changes, keep track of backups. On 10/6/10, David Haymond <haymondsoftw...@gmail.com> wrote: > If I copy, I don't want to transfer EVERY record to the server each time I > sync, because that would be a waste of bandwidth. What is the best way to > copy only those records that have changed to the server? > > David > > -----Original Message----- > From: Simon Slavin > Sent: Wednesday, October 06, 2010 7:18 AM > To: General Discussion of SQLite Database > Subject: Re: [sqlite] SQLite database sync > > > On 6 Oct 2010, at 1:29pm, David Haymond wrote: > >> I am completely new to SQLite (and SQL in general), and I am currently >> working on an iPhone app that uses the embedded SQLite engine to cache >> offline data. What is the best way to implement synchronization >> capabilities (change tracking, state tracking, etc.) in a separate table >> (such as meta), so that the app can sync to the server? >> >> My database contains two tables: locations and trips. trips is the child >> of locations. > > Does it actually have to synchronise ? In other words, are changes made to > both copies, or only to the copy on the iPhone ? If changes are made to > only one copy, you can just copy that copy (if you see what I mean). > > If changes are made to both copies, you're in for a world of hurt because > you really need to separate out intentional changes from the changes > actually made. One way to do it is to keep a log of the operations executed > since the last synch. For example you could make another table 'changelog': > > timestamp operation > 2398479 INSERT INTO locations ... > 2402372 UPDATE trips ... > > To synchronise you just execute the log, in timestamp order, on all the > other copies. This does not work properly under all circumstances because > UPDATE commands can interfere with one-another, but in a simple database it > should work fine. > > To do things properly you need to maintain a separate unchanged model, synch > it with all the satellites, then copy it to all the satellites. It's > complicated and requires lots of bytes moved about. > > Simon. > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >
-- Sent from my mobile device _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users