Я смотрю на создание моего первого мобильного приложения. Одной из основных функций приложения является то, что несколько устройств / пользователей будут иметь доступ к одним и тем же данным - и все они будут иметь права CRUD.
Я считаю, что архитектура должна включать центральный сервер, на котором хранятся все данные. Устройства будут использовать API для взаимодействия с сервером для выполнения операций с данными (например, добавление записи, редактирование записи, удаление записи).
Я представляю себе сценарий, в котором синхронизация данных станет проблемой. Предположим, что приложение должно работать, когда оно не подключено к Интернету и, следовательно, не может связаться с этим центральным сервером. Так:
- Пользователь А не в сети и редактирует запись # 100
- Пользователь B не в сети и редактирует запись # 100
- Пользователь C не в сети и удаляет запись # 100
- Пользователь C выходит в сеть (предположительно, запись № 100 должна быть удалена на сервере)
- Пользователь A и B выходит в сеть, но отредактированные записи больше не существуют.
Все виды сценариев, подобных вышеупомянутому, могут придумать.
Как это вообще обрабатывается? Я планирую использовать MySQL, но мне интересно, если это не подходит для такой проблемы.