核心数据:如何从一个核心数据条目设计树形数据结构

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 列表中的核心数据实体中过滤条目

RestKit:如何删除核心数据条目以保持内容与服务器同步?

如何删除核心数据中的条目

如何在核心数据iOS中获取每个实体的最后一个条目