Добра всем.
Итак, имеется сервер и имеется клиент, у обоих есть реляционные БД (почти одинаковой схемы), стоит задача частично синхронизировать их (частично - потому что клиент видит и меняет только те данные, которые ему можно). При этом, клиент может читать и менять набор данных находясь полностью в оффлайне, с последующим излиянием изменений на сервер, и получением соотв. изменений от него.
Видится две схемы:
* каждая запись несет свой номер версии/дату изменения/флаг изменения, и обмен идет теми данными которые изменились с момента последней синхронизации. недостатки - повышенная конфликтность, в основном обусловленная перезаписью строки целиком.
* имеется таблица-журнал, в которую пишутся измененные строки (JSON, только измененные поля) и соотв. обмен идет записями в этой таблице. недостатки - размеры БД, и если по какой-то причине (баг?) клиент пропустил несколько изменений - только перекачивать базу целиком. преимущество - по ТЗ должна быть история изменений почти всех объектов + упрощение инкрементальной закачки при плохом канале связи
думается мне, что задача эта достаточно распространенная, интересно, какие схемы/либы вы применяли для решения? какие истории успеха/фэйла?
зы. может вообще в git все засунуть? ;)
Ответ на:
комментарий
от monk
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Синхронизация данных (2015)
- Форум Синхронизация данных (2012)
- Форум Няшная синхронизация данных (2015)
- Форум Автомагическая синхронизация данных (2022)
- Форум Синхронизация баз данные (2009)
- Форум Синхронизация базы данных. (2009)
- Форум синхронизация баз данных (2004)
- Форум Синхронизация базы данных (2012)
- Форум InnoDB - как физически сохраняет блоки B+-Tree на диск? (2019)
- Форум Синхронизация удаленных баз данных (2012)