Базовые Данные: Обратная связь к нескольким объектам?

Скажем, у меня есть 4 объекта в моей модели данных: Человек, Автомобиль, Домашнее животное и фотография. Я хотел бы отношения от Автомобиля Человека и Домашнего животного к фото объекту, в котором я хотел бы каждую из тех вещей содержать фотографию того объекта. До сих пор, никакие проблемы. Хотя то, где это становится хитрым, является обратной связью, которая является, где фото объект хотел бы указать назад на приложенный объект. Я предпочел бы или не иметь никакой обратной связи вообще, таким образом, единственный атрибут на фотографии будет UIImage или возможно единственной attachedItem обратной связью. Если я делаю это, я мог бы только выбрать один из тех объектов для присоединения к моим отношениям.

Было бы лучше оставить это как однонаправленные отношения? Возможно, я мог сделать абстрактный объект под названием "AttachableItem" и заставить Автомобиль Человека и Домашнее животное быть детьми этого, затем высказать мое мнение обратной связи к AttachableItem. Я не уверен, какой способ был бы лучшим.

7
задан Cory Imdieke 25 January 2010 в 01:52
поделиться

1 ответ

Я бы сделал фото абстрактное сущность и создавать личности, карфото и Petphoto, каждый с фотографией в качестве своего родительского объекта.

Человек, автомобиль и домашнее животное имеют отношение к одному соотношению с личностью, карфото и PetPhoto соответственно. Тогда, Personphoto, Carphoto и Petphoto может каждый из них есть один, необходимый для одной обратной связи с человеком, автомобилем и питомцем, соответственно.

Фото объекта все равно будет иметь единственный атрибут. Вы можете хранить изображения в файлах в каталоге документов вашего приложения и сохранить имя файла в качестве этого атрибута. Этот подход рекомендуется в этому ответу . Кроме того, вы можете хранить изображения непосредственно в основных данных в качестве трансформируемого атрибута, преобразуя их в NSDATA с использованием UIImagePngrepresentation () или UiimageJPegreSentation () .

12
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: