Iphone 核心数据查找表

Iphone 核心数据查找表,iphone,core-data,Iphone,Core Data,如何使用核心数据为可变查找表建模 假设我有一张叫做“绘画”的桌子。每幅画可以有一种或几种“颜色”,如“红色”、“蓝色”等。因此,“颜色”表是共享的 我如何建模 我希望能够通过添加或删除颜色来修改“颜色”表。是的,多对多关系是建模的正确方法。您需要这样的数据模型: Painting{ name:string colors<<-->>Color.paintings } Color{ name:string paintins<<--

如何使用核心数据为可变查找表建模

假设我有一张叫做“绘画”的桌子。每幅画可以有一种或几种“颜色”,如“红色”、“蓝色”等。因此,“颜色”表是共享的

我如何建模


我希望能够通过添加或删除颜色来修改“颜色”表。

是的,多对多关系是建模的正确方法。

您需要这样的数据模型:

Painting{
    name:string
    colors<<-->>Color.paintings
}

Color{
    name:string
    paintins<<-->>Painting.color
}
绘画{
名称:string
彩色绘画
}
颜色{
名称:string
颜料
}

如果您希望能够从一种颜色遍历到使用该颜色的所有绘制对象,那么您将希望使用到多个绘制-->>具有到多个反向关系的颜色-->>绘制。这似乎是你正在寻找的

另一方面,如果您不需要从一种颜色遍历到另一种颜色,那么这可能是一种罕见的情况,在这种情况下,您可能希望放弃一种相反的关系,只需要绘制多幅-->>颜色

编辑

如果您希望能够删除绘画引用的颜色,那么您可能希望保持这两个实体之间的反向关系。此外,您还需要在颜色-->>绘制和绘制-->>颜色关系上定义“删除规则”。在这两种情况下,“取消”似乎是最好的选择。因此,当一种颜色被删除时,所有引用它的绘画都将使该引用无效(删除)。同样,当一幅画被删除时,引用它的所有颜色将停止引用它


换句话说,不需要检查查找失败。也就是说,防御性地编写代码始终是一种良好的做法。

找到了另一篇可能有用的帖子,但仍然没有加入。。。好的,看起来我只需要创建一个多对多的关系和一个反向关系。有这么简单吗?你有10多个问题,但你没有接受任何一个。@Black对此表示抱歉。我回去回顾了以前的帖子。谢谢,谢谢。我想知道“查找表”方面。我想在开始创建任何绘画之前添加一些颜色项目,以便我可以向用户提供这些选项。如果绘制#2时绘制#1使用绿色,我希望“查找”现有颜色值并显示它们。我想我可能需要一个单独的表或“plist”之类的东西。我计划创建第三个表,其中包含可用颜色的查找数据,然后引用颜色表中的ID值。如果加载绘画颜色时发生查找失败,则我知道该颜色已被删除。也许有一种更优雅的方式来处理这个问题。我希望将来能找到一个更好的方法。查找表方面应该相当简单。基本上,您将显示某个实体(即颜色)的所有对象。关于第二条注释,您将反复阅读核心数据不是关系数据库,尽管有在sqlite dbs中存储核心数据模型的选项。记住这一点:-)并记下我对答案的修改。我真的很感谢你们的回复。我认为核心数据非常优雅,但对我来说很难概念化。我会到达那里:-)然而,一个问题是,我想有一个包含“可用”颜色的表格,可以为绘画选择,可以编辑(添加/删除)。所以每幅画都有一个颜色表。那么需要第三张桌子吗?如何使所有表保持同步?我想这些问题的答案会帮我解决这个问题。