2010-01-25 5 views
7

데이터 모델에 Person, Car, Pet 및 Photo라는 4 개의 엔티티가 있다고 가정 해 봅니다. 저는 Person Car와 Pet에서 Photo 엔티티에 대한 관계를 원합니다. 그 각각의 것들에 해당 항목의 사진이 포함되기를 바랍니다. 지금까지 아무런 문제가 없습니다. 까다로워지는 곳은 사진 관계자가 첨부 된 항목을 다시 가리키고 싶은 반비례 관계입니다. 나는 반비례 관계가 전혀 없기를 바랄 것입니다. 그래서 Photo의 유일한 속성은 UIImage이거나 어쩌면 단 하나의 attachedItem 역관계 일 것입니다. 그렇게 할 경우 해당 관계 중 하나를 선택할 수 있습니다.핵심 데이터 : 여러 엔터티에 대한 반대의 관계?

단방향 관계로 두는 것이 좋습니까? 어쩌면 나는 "AttachableItem"이라는 추상 엔티티를 만들고 Person Car와 Pet를이 자식으로 만들 수 있고, 그런 다음 AttachableItem과의 역관계를 만들 수 있습니다. 어떤 방법이 최선 일지 모르겠습니다.

답변

12

필자는 Photo를 추상 엔티티로 만들고 각각 Photo를 부모 엔티티로 사용하여 PersonPhoto, CarPhoto 및 PetPhoto 엔티티를 만듭니다.

Person, Car 및 Pet는 PersonPhoto, CarPhoto 및 PetPhoto와 각각 1 대 1의 관계를 갖습니다. 그런 다음 PersonPhoto, CarPhoto 및 PetPhoto는 각각 Person, Car 및 Pet와 각각 하나씩 필요한 역 관계를 가질 수 있습니다.

사진 엔티티에는 여전히 단일 속성이 있습니다. 앱의 Documents 디렉토리에있는 파일에 이미지를 저장하고 파일 이름을이 속성으로 저장할 수 있습니다. 이 방법은 this answer에서 권장됩니다. 또는 UIImagePNGRepresentation() 또는 UIImageJPEGRepresentation()을 사용하여 이미지를 NSData로 변환하여 변환 가능한 속성으로 Core Data에 직접 저장할 수 있습니다.

+0

슈퍼 대답 남자. 내 전체 모델은 이것을 읽은 후 단순화되었습니다. –

관련 문제