Базовая синхронизация данных - отслеживание удаленных объектов

Я настраиваю базовую службу синхронизации для разрабатываемого мной приложения для iPad. Цель состоит в том, чтобы обеспечить единообразие данных в нескольких экземплярах приложения для iPad, а также иметь версию данных только для чтения в Интернете, что позволяет развернуть собственное решение.

Текущий поток таков:

  • Каждая сущность имеет поля «создано», «изменено» и «UUID», которые автоматически обновляются базовыми данными.
  • При синхронизации каждая сущность с датой создания или изменения после дата последней синхронизации сериализуется в JSON и отправляется на сервер
  • . Сервер сохраняет любые изменения в базе данных MySQL, используя сгенерированные клиентом UUID в качестве PK (в случае конфликта он просто использует последний измененный объект как ' true ', ничего особенного) и отправляет обратно все обновленные сущности клиенту
  • Затем клиент объединяет эти изменения обратно в свою базу данных Core Data

. Кажется, все работает нормально. Моя проблема в том, как отследить удаленные объекты с помощью этого метода? Я предполагаю, что могу добавить флаг «удалено» для каждого объекта и установить его, когда клиент что-то удаляет, а затем я могу отправить это изменение на сервер вместе с остальными данными синхронизации. После завершения синхронизации клиент может удалить эти объекты.У меня следующие вопросы:

  • Могу ли я переопределить методы удаления Core Data для автоматической установки этого флага?
  • Потребуется ли для этого хранить все удаленные объекты на сервере неопределенное время? У нас не будет возможности узнать, когда каждый клиент синхронизировал и фактически удалил каждую сущность (в настоящее время я не отслеживаю экземпляры клиентов)
  • Есть ли лучший способ сделать это?
6
задан NathanGaskin 26 January 2012 в 09:45
поделиться