2010-01-25 160 views
7

假設我的數據模型中有4個實體:Person,Car,Pet和Photo。我希望從Person Car and Pet到Photo實體的關係,因爲我希望每件事都包含該項目的照片。到目前爲止,沒有問題。雖然它變得棘手的地方是相反的關係,這是照片實體想要指向附加項目的地方。我寧願要麼完全沒有反向關係,所以Photo中唯一的屬性就是UIImage,或者可能是一個單獨的附件反向關係。如果我這樣做,我只能選擇其中一個項目來附加到我的關係。核心數據:與多個實體的反向關係?

將它作爲單向關係會更好嗎?也許我可以創建一個名爲「AttachableItem」的抽象實體,並讓Person Car和Pet成爲這個子項,然後使我的反向關係指向AttachableItem。我不確定哪種方式最好。

回答

12

我將使照片成爲一個抽象實體,並創建每個以Photo作爲其父實體的PersonPhoto,CarPhoto和PetPhoto實體。

Person,Car和Pet分別與PersonPhoto,CarPhoto和PetPhoto有一對一的關係。然後,PersonPhoto,CarPhoto和PetPhoto可分別與Person,Car和Pet分別具有單個所需的一對一反向關係。

Photo實體仍然具有單個屬性。您可以將圖像存儲在應用程序的Documents目錄下的文件中,並將該文件名保存爲該屬性。這種方法建議在this answer。或者,您可以通過使用UIImagePNGRepresentation()UIImageJPEGRepresentation()將圖像轉換爲NSData,將圖像作爲可轉換屬性直接存儲在Core Data中。

+0

超級解答的男人。閱讀完後,我的整個模型都被簡化了 – 2011-08-08 02:39:17