Реализация синхронизации приложения с БД
Пожскажите пожалуйста, как лучше реализовать:
Имеется: 1 бд (доступна в сети) Приложение #1, которое взаимодействует с бд в режиме реально времени. Приложение #2, которое большую часть времени оффлайн, но при выходе в сеть должно синхронизироваться с бд: отправлять локаллные данные в бд и загружать тех, которых нет в локальной бд этого приложения.
Как мне правильно реализовать синхронизацию?
Скорей всего для каждого приложения возможно стоит сделать свою таблицу или правило формирования primary key для каждого приложения?
Ответы (1 шт):
слишко мало данных для конкретного решения, но как вариант есть такая идея:
можно прикрутить к каждой записи индексированое поле к примеру "modification_timestamp", приложение №2 должно запоминать время последней синхронизации и выбирать только "новые" записи. также можно выбирать и локальные данные для аплоада.
недостатки подхода:
- часы приложений должны быть синхронизированы!
- если запись изменена и в №1 и в №2 то возникает конфликт (хотя эта проблема будет и с другими подходами)
- если приложений типа №2 более одного экземпляра, то время модификации в базе №1 придется приравнивать к времени аплоада, чтобы изменения не пропадали для приложений синхронизировавшихся перед этим.