Миграция основных данных отношения «к одному» к отношению «ко многим»

У меня есть развернутое приложение, которое собирает результаты измерений с датчиков (например, температура °C, давление, кПа). Пользователь может создавать эксперименты и собирать образцы. Каждый образец хранится как цикл, так что существует связь «один ко многим» между экспериментом и циклом. В интересах производительности Run имеет однозначную связь с объектом Data (где хранятся фактические необработанные данные); это позволяет загружать некоторые атрибуты выполнения без обязательной загрузки большого количества данных.

Большинство наших датчиков имеют несколько измерений, поэтому было бы неплохо хранить все данные, которые фактически собираются. Но это означает, что связь Run ‹---> Data должна стать Run ‹-->> Data (используя соглашение Xcode).

Я столкнулся с попыткой перенести данные из старой модели данных Run to one в новую модель данных Run to many. Можно ли это сделать с помощью картографических моделей? Если да, то есть ли у кого-нибудь ссылки на примеры? Если нет, есть ли у кого-нибудь указатели на примеры того, как это сделать?

Спасибо за любые указания или советы.


person westsider    schedule 04.05.2010    source источник
comment
Облегченная миграция поддерживает это: " title="отношение изменения упрощенной миграции основных данных с одного на несколько"> stackoverflow.com/questions/34749301/   -  person John Yang    schedule 14.11.2018


Ответы (2)


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

person Marcus S. Zarra    schedule 05.05.2010
comment
Спасибо, Маркус. Увы, с момента, когда я задал вопрос, и сейчас схема значительно усложнилась. Тем не менее, внимательное и внимательное прочтение вашей книги Core Data очень помогло, как и связанный с ней код миграции. Боюсь, очень скоро я создам подкласс NSEntityMigrationPolicy. - person westsider; 11.05.2010

В итоге мне пришлось несколько раз создать подкласс NSEntityMigrationPolicy. Это было необходимо, потому что свойства перемещались из/в разные объекты с добавлением нескольких уровней абстракции для поддержки значительно более общей модели. Также важным был порядок сопоставлений сущностей в модели сопоставления.

В конечном итоге мне пришлось установить параметры для -addPersistentStoreType:configuration:URL:options:error: на:

    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                         [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, nil];

таким образом опуская NSInferMappingModelAutomaticallyOption.

person westsider    schedule 15.10.2010