Core data 核心数据:我可以向父实体添加关系吗?

Core data 核心数据:我可以向父实体添加关系吗?,core-data,attributes,entity-relationship,parent,nsmanagedobject,Core Data,Attributes,Entity Relationship,Parent,Nsmanagedobject,我制作了Photo实体,它有一个Data属性来存储图像数据照片是缩略图实体的父级。我还添加了照片和缩略图之间的一对一关系,以便照片可以有缩略图 这似乎有效,但有点令人困惑 您认为制作另一个名为Image的实体(具有图像数据属性)并制作Photo&缩略图图像的子对象是更好的设计吗 你认为这样设计更好吗 使另一个名为Image的实体 具有图像数据属性并使 图片和缩略图像的子对象 您不应该将实体继承视为一种整洁设计的方法,而应该使用它,以便多个实体可以驻留在同一关系中 假设您有一个Person实体,该

我制作了
Photo
实体,它有一个
Data
属性来存储图像数据<代码>照片是
缩略图
实体的父级。我还添加了
照片
缩略图
之间的一对一关系,以便
照片
可以有
缩略图

这似乎有效,但有点令人困惑

您认为制作另一个名为
Image
的实体(具有图像数据属性)并制作
Photo
&
缩略图
图像的子对象是更好的设计吗

你认为这样设计更好吗 使另一个名为Image的实体 具有图像数据属性并使 图片和缩略图像的子对象

您不应该将实体继承视为一种整洁设计的方法,而应该使用它,以便多个实体可以驻留在同一关系中

假设您有一个
Person
实体,该实体具有图像数据,但图像的大小或类型不同,但您需要所有图像实体处于相同的关系中。您可以这样设置:

Person{
    images<-->>Image.person
}

Image{
    person<<-->Person.images
}

GIF:Image{
    //... GIF related attributes
}

JPG:Image{
    //... JPG related attributes
}
人{
图像>图像.person
}
形象{

PersonTanks!我正在考虑你关于关系的实体继承的论点。那么,你是说我应该删除上一个问题中的资源实体吗?不过,有时我想在两个子类之间共享相同的方法。实现这一点,除了子类化还有什么替代方法?例如,我给Photo&User一个支持r类称为Resource,它有一个id(与服务器上的id匹配)。如果我想在Photo&User可以共享的资源中放置公共网络代码(比如从服务器获取资源),该怎么办?此外,它可能会在SQLite中为资源表提供两倍的行数,但这些行不是很短吗(3列:pk、id、type),它不会从User&Photo表中删除id列吗?因此,它可能效率较低,但与子类共享超类代码的细节如何?托管对象子类和实体不必具有相同的继承。即使数据模型中的实体不共享继承。