Я настраиваю базовую службу синхронизации для разрабатываемого мной приложения для iPad. Цель состоит в том, чтобы обеспечить единообразие данных в нескольких экземплярах приложения для iPad, а также иметь версию данных только для чтения в Интернете, что позволяет развернуть собственное решение.
Текущий поток таков:
- Каждая сущность имеет поля «создано», «изменено» и «UUID», которые автоматически обновляются базовыми данными.
- При синхронизации каждая сущность с датой создания или изменения после дата последней синхронизации сериализуется в JSON и отправляется на сервер
- . Сервер сохраняет любые изменения в базе данных MySQL, используя сгенерированные клиентом UUID в качестве PK (в случае конфликта он просто использует последний измененный объект как ' true ', ничего особенного) и отправляет обратно все обновленные сущности клиенту
- Затем клиент объединяет эти изменения обратно в свою базу данных Core Data
. Кажется, все работает нормально. Моя проблема в том, как отследить удаленные объекты с помощью этого метода? Я предполагаю, что могу добавить флаг «удалено» для каждого объекта и установить его, когда клиент что-то удаляет, а затем я могу отправить это изменение на сервер вместе с остальными данными синхронизации. После завершения синхронизации клиент может удалить эти объекты.У меня следующие вопросы:
- Могу ли я переопределить методы удаления Core Data для автоматической установки этого флага?
- Потребуется ли для этого хранить все удаленные объекты на сервере неопределенное время? У нас не будет возможности узнать, когда каждый клиент синхронизировал и фактически удалил каждую сущность (в настоящее время я не отслеживаю экземпляры клиентов)
- Есть ли лучший способ сделать это?
задан NathanGaskin 26 January 2012 в 09:45
поделиться