Я разрабатывал несколько приложений для iOS с использованием Core Data, и это был отличный фреймворк для работы. Однако я столкнулся с проблемой, из-за которой мы более или менее распределили объекты (синхронизировали) по нескольким платформам. Серверная часть веб-сервера / базы данных и мобильные устройства.
Хотя до сих пор это не было проблемой, статическая природа модели данных, используемой Core Data, немного застряла. По сути, запрашивается динамическая система форм, посредством которой формы могут создаваться на сервере и распространяться на устройства. Мне известна техника выполнения этого с заданным количеством таблиц, например:
- Таблица форм
- Таблица полей
- Таблица экземпляров форм
- Таблица значений экземпляра
и просто связать все вместе. Однако мне интересно, есть ли альтернатива Core Data (что-то выше, говорящее напрямую с базой данных SQLite), которая позволит создать более динамичный граф объектов. Даже стандартный ORM был бы хорош, если бы были варианты изменения схемы во время выполнения. Основная причина, по которой я хочу пойти по этому пути, заключается в производительности в том смысле, что я не хочу, чтобы таблица значений экземпляра взрывалась с записями (на локальном устройстве или сервере).
Мой другой вариант - иметь статическую схему (object-graph) на устройствах iOS, но иметь слой преобразования на стороне сервера, который выбирает правильный объект, заполняет свойства и сохраняет его в правильной таблице. Затем, когда устройство приходит к синхронизации, оно делает обратное и разбивает его на экземпляры. Хотя это избавляет сервер от наличия раздутой таблицы значений экземпляров, это все же может быть проблемой на устройстве.
Любые предложения приветствуются.