Как синхронизировать базы данных клиента и сервера?
Придумал 2 варианта:
1) Клиент отправляет на сервер список id строк которые надо удалить и список имеющихся на клиенте строк(id,update_id). В ответ приходит список строк которые надо добавить (полный набор данных), список id строк которые надо удалить с клиента и список id строк которые нужно добавить на сервер.
Есть один минус надо всегда хранить на сервере id строк которые надо удалить.
2) Второй вариант такой же, но не надо отправлять с сервера список id строк которые надо удалить на клиенте, в ответ приходить весь список данных которые на сервере и база на клиент полностью переписывается ?
Хранить список id удаляемых строк уже не надо но трафик при ответе с сервера больше и перезаписывать всю базу затратней.
Есть ли вариант который убирает все эти недостатки? Возможно есть вариант как идентифицировать новое устройство с которого зашёл пользователя и когда будут обновлены все устройства пользователя удалять список id удаленных строк.
Как я понял, речь идет про сервер и приложение - возьмем для примера ЧАТ и его историю.
Грузить всю историю - излишне. Пользователь все равно ее всю СРАЗУ не видит, загрузите последние Х сообщений (20-50), а когда он докрутит до последнего - сделайте запрос на еще 20-50 более ранних. Так пользователь, сам если ему нужно, загрузит себе всю историю.
А вот список чатов - логичнее загрузить весь.
тогда нужно конкретно поставить задачу.
если они общаются в обе стороны, то это скорее костыль, чем решение - использовать для хранения одних и тех же данных в разных по предназначению БД