Хорошо, у меня было два последующих идеи о том, как подойти к этому, подумал, что будет лучше в качестве ответа, чем на редактирование:
1) У вас есть две базы данных, один для телефона и один для веб-приложения. Схема будет выглядеть следующим образом:
index_id | title | amount | user_id | created | environment | foreign_id
Так скажем, у меня есть запись на мобильном устройстве: 1, «Название», 2.00,1, NOW() и запись на моем веб-приложение, 1» Что-то ', 5.00,1, СЕЙЧАС(). Чтобы избежать этих двух противоречащих друг другу вопросов, веб-приложение добавит строку, в которой будут указаны слова 2, 'Title', 2.00,1, NOW(), 'mobile', 1.
Таким образом, я могу поддерживать все index_id правильно. Это кажется абсолютным кошмаром, чтобы поддерживать и поправляться.
2) Что делать, если вы назначили БД (например, веб-приложение) в качестве ведущего устройства и устройства в качестве подчиненного устройства, так что у вас была одна таблица в веб-приложении и две таблицы на устройстве. Для устройства у вас будет одна «очередь очередей», которая при подключении к сети будет обновлять базу данных живых веб-приложений (в то же время освобождая себя), а затем база данных WEB APP будет синхронизироваться, в одну сторону, обратно вторая главная таблица устройства.
Прежде чем синхронизация, бизнес-логика на устройстве должна будет обрабатывать две локальные таблицы как одну. Это похоже на более легкое зверь, чем выше.
Я согласен с вашим подходом - как вы отслеживаете эти изменения? Если обе базы данных имеют автоинкрементные идентификаторы, как вы сравниваете эти два? Теоретически единственной уникальной частью строки является index_id (созданный, вероятно, уникален на практике), но у вас могут быть две записи: одна на телефоне и одна на сервере с одинаковым названием/количеством/user_id. Как вы узнаете, что синхронизировать и что оставить в покое? – thekevinscott