iphone - 核心数据 : Dealing with polymorphic associations?

标签 iphone objective-c ios database-design core-data

我不确定我在这里使用的术语是否正确,但假设我的模型中有四个实体:PersonPlace标签照片。其他三个实体中的任何一个都可以有与其相关的 Photo。有时, 会拍摄照片并将其附加到标签地点,甚至是另一个。在 CoreData 中处理多态关联的最佳方法是什么?

最佳答案

对于像这样简单的事情,我不建议使用实体继承。对于此设计,您有三种关系,PersonPlaceTag 都与 Photo 有关系。 Photo`具有三个反向关系。它不需要比这更复杂。

实体继承是一个非常微妙的工具,很容易给你带来很多问题。任何从另一个继承的实体都将被展平到一个表中。如果按照@morningstar 的建议,您创建了一个 Noun 实体并让 PersonPlaceTag 继承自它,您在 SQLite 文件中将有 ONE 表,其索引指向自身和其他脏东西。

什么时候使用实体继承?

这是一个很难用简单的规则来回答的问题。但是,我会说基准是确保生成的表格至少有 70% 的填充率。例如,如果您有一个包含 6 个属性的摘要和两个包含 2 个属性的子项,那么填充率可能约为 80%,可能没问题。

一般来说,我不使用实体继承,因为它没有什么好处,而且对性能有很大的风险。旧规则有效,除非您知道您需要使用它,否则不要使用它。

关于iphone - 核心数据 : Dealing with polymorphic associations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892661/

相关文章:

java - 如何在Android和iOS浏览器上运行JSP文件?

objective-c - 定义一个特定表格单元格的高度

ios - 如何在照片中插入标签以进行 Instagram 分享

html - 如何显示来自 HTML 字符串的链接和图像

ios - viewDidAppear 在应用程序由于显着的位置变化而启动时被调用,即使它不可见并且在后台

iphone - 加载 ePub — 简单的 ePub 阅读器问题

iphone - 指定单元格 imageView 的宽度

ios - 将基于 Objective-C 的委托(delegate)转换为 Swift

ios - 继承属性,在从只读继承的属性中读写时不合成setter

ios - respondsToSelector : 的实现