Двусторонняя синхронизация между приложением iPhone и веб-приложением

У меня есть веб-приложение, основанное на базе данных MySQL, для которого я думаю о создании приложения для iPhone. Это приложение позволит пользователям просматривать / вставлять / обновлять / удалять данные своей учетной записи в веб-приложении.

Самым простым способом было бы создать приложение для iPhone просто как интерфейс для веб-приложения, то есть каждая операция должна быть подключена к сети. Тем не менее, я бы хотел, чтобы приложение для iPhone имело собственную «автономную» версию базы данных. Это не только позволит пользователю работать в автономном режиме, но и обеспечит более удобную работу, поскольку наличие всего локального означает более быстрое и более отзывчивое приложение.

Я бы обрабатывал конфликты, используя временную метку и сохраняя последнюю версию (я уже использую мягкое удаление, т.е. когда пользователь удаляет запись, я просто устанавливаю флаг), но я не совсем понял, как обрабатывать вставки. Действительно, если пользователь вставляет новые элементы в автономные базы данных (приложение iPhone) и онлайн (веб-приложение), возникает конфликт первичного ключа (все мои таблицы имеют поле INTEGER с автоматическим приращением в качестве первичного ключа). Как я могу справиться с этой проблемой?

Я думал о том, чтобы иметь первичный ключ из двух столбцов, один из которых представляет собой автоинкрементное целое число, а второй - специфический для «устройства». Таким образом, новые записи, добавленные через веб-приложение, будут иметь идентификатор 1-web, 2-web и т. Д., А записи, созданные с помощью приложения iPhone 1-iphone, 2-iphone и т. Д., Позволят объединить два базы данных без конфликтов. Что вы думаете об этой идее?

Ответы на вопрос(1)

Ваш ответ на вопрос