В моей базовой модели данных (на iPhone SDK 3.1) у меня есть несколько объектов, связанных с одним и тем же экземпляром изображения. Само изображение также сохраняется как управляемый объект. Чтобы сэкономить место на диске, я пытаюсь создать 1 дБ файл для изображений и еще один дБ файл для всех других объектов.
Чтение документации Apple и поиск в течение нескольких дней я пришел к следующему выводу:
- Создать 1 модель данных, которая содержит описание всех сущностей
- Используйте 1 постоянный координатор магазина
Используйте конфигурации для хранения объектов изображения в другом файле (sqlite), чем другие объекты (см. здесь )
И, поскольку Базовые данные не поддерживают отношения между экземплярами в одном постоянном хранилище и экземплярами в другом постоянном хранилище, используйте «Полученные свойства» для создания слабых односторонних отношений
Использовать конфигурации довольно просто: назначьте конфигурацию объекту с помощью средства моделирования данных и объявите, какую конфигурацию использовать при добавлении постоянного хранилища в координатор. В моем случае я добавил в магазины координатор.
Но вот в чем проблема: при извлечении, скажем, объектов «Пользователь» из одного хранилища, как я могу использовать извлеченные свойства, чтобы загрузить изображения, связанные с этим пользователем (и назначить их объекту пользователя)?
Должен ли я написать собственный метод доступа для 'images' в пользовательском объекте? Как (и где) указать предикат для выбранного свойства?
Я был убежден, что должен быть учебник или пример, объясняющий это (поскольку Apple, очевидно, предлагает именно это). Но пока не повезло.
Есть идеи?
Надеюсь, мы сможем начать обсуждение этой темы. Я уверен, что есть другие (более умные) способы решить эту проблему ...