核心数据:如何从一个核心数据条目设计树形数据结构
Posted
技术标签:
【中文标题】核心数据:如何从一个核心数据条目设计树形数据结构【英文标题】:Core Data: How to design a tree data structure from one core data entry 【发布时间】:2011-12-22 17:43:04 【问题描述】:我正在努力设计一个coreData
模型,其中我只有一种类型的条目,称为“待办事项”。每个待办事项条目与其他(子)条目有 0、1、2、...或 n 个关系,就像待办事项一样。因此,To-Do 条目之间的关系设计了一个具有未定义数量的子节点的树结构。下图应该说明这种情况(E = 核心数据条目):
E
/|\
/ | \
E E E
/ \
/ \
E E
/|\
E E E
我的猜测是对这些数据进行建模,如下图所示。我没有选择反向关系,因为 Xcode 从中产生了与树设计不匹配的多对多关系。
我还在data model inspector
中看到了一个叫做“父条目”的东西。所以我开始相信我可能必须创建第二个名为“To-Do-Child”的具有相同属性的条目,并将另一个条目添加到父条目。手册告诉我,这可能是错误的道路......
问题:
如何在核心数据模型文件中为这种方法建模?上面提到的方法之一是否正确?
我将如何获取指定父节点的所有 To-Do 条目? 因为它们来自同一个条目,所以我在处理确切的 To-Do 子树时遇到了问题想要。
【问题讨论】:
只是链接到这个问题,这比接受的答案更有用***.com/questions/16633907/… 【参考方案1】:我认为您需要parent
的关系(目标实体是您的待办事项实体)作为反向关系的目标。
树顶部的条目对于这种关系具有 nil 值。
对于任何待办事项,从 childToDos 关系返回的集合将包含所有子项。这些是否属于同一类并不重要。
【讨论】:
啊哈,好主意。但后来我想到为什么不定义第二个名为parent
的关系。如果没有新属性,那不是也能达到目的吗?那么第一种处理自我关系的方法是正确的方法吗?
正确,这就是我的意思,对不起。我已经更新了答案。以上是关于核心数据:如何从一个核心数据条目设计树形数据结构的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SwiftUI 的详细信息视图(编辑项目视图)中删除核心数据条目?
从出现在 NSPopUpButton 列表中的核心数据实体中过滤条目