代码之家  ›  专栏  ›  技术社区  ›  Cory Imdieke

核心数据:与多个实体的反向关系?

  •  7
  • Cory Imdieke  · 技术社区  · 15 年前

    假设我的数据模型中有4个实体:Person、Car、Pet和Photo。我想要一个从人车和宠物到照片实体的关系,因为我希望每个东西都包含一张该物品的照片。到目前为止,没有问题。尽管它变得棘手的是反向关系,这是照片实体想要指向附加项的地方。我更喜欢没有任何逆关系,所以照片中的唯一属性是UIImage,或者可能是单个attachedItem逆关系。如果我这样做,我只能选择其中一项附加到我的关系。

    把这当作一种单向关系会更好吗?也许我可以做一个抽象的实体叫“AttachableItem”,让人车和宠物成为这个的孩子,然后让我的反向关系指向AttachableItem。我不确定哪条路最好。

    1 回复  |  直到 15 年前
        1
  •  12
  •   Community Mr_and_Mrs_D    7 年前

    我将使Photo成为一个抽象实体,并创建PersonPhoto、CarPhoto和PetPhoto实体,每个实体都将Photo作为其父实体。

    Person、Car和Pet分别与PersonPhoto、CarPhoto和PetPhoto有一对一的关系。然后,PersonPhoto、CarPhoto和PetPhoto可以分别与Person、Car和Pet有一对一的反向关系。

    照片实体仍将具有单个属性。您可以将图像存储在应用程序文档目录中的文件中,并将文件名保存为此属性。在中建议使用此方法 this answer . 或者,您可以将图像直接作为可转换属性存储在核心数据中,方法是使用 UIImagePNGRepresentation() UIImageJPEGRepresentation()