Mam podobny problem z dwukierunkową synchronizacją między bazą danych SQL sqlite systemu Android a centralną bazą danych MySql. Problem pojawia się, gdy wkładki są tworzone, ponieważ dopuszcza możliwość replikacji kluczy podstawowych.
Zbudowałem system z powrotem, który wykorzystywał podstawowe klucze sprzętowe i czasowe GUID zamiast prostych, monotonicznie rosnących kluczy podstawowych. Teoria jest taka, że jeśli nowe rekordy są wstawiane albo na słuchawce przy użyciu sqlite, albo na centralnym serwerze przy użyciu mysql, klucze nigdy nie będą sprzeczne, ponieważ są globalnie unikalne.
Niestety, oznacza to, że korzystasz z podstawowej działalności związanej z zarządzaniem kluczami, a nie tylko z automatu dostarczanego z obydwoma silnikami DB. Ale w teorii podejście to umożliwia łatwe łączenie danych z wielu różnych aparatów w centralnej bazie danych i ponowne ich rozpowszechnianie na wszystkich słuchawkach. Rozważam to podejście do mojego problemu z Androidem, chociaż wciąż mam nadzieję znaleźć rozwiązanie już tam opracowane.
Synchronizacja baz danych to bardzo złożony i szeroki obszar. Istnieje wiele technik i narzędzi, z których wszystkie wiążą się z takimi lub innymi kompromisami. Krótko mówiąc, nie ma na to krótkiej odpowiedzi, szczególnie w przypadku różnych silników baz danych. –