Ios coredata中的多层次结构

Ios coredata中的多层次结构,ios,core-data,database-design,database-schema,Ios,Core Data,Database Design,Database Schema,我确实有一个问题,我很难弄清楚如何在coredata中布局关系。我试图想象下面的问题 基本上,在我的应用程序中,用户有由术语组成的语句 一个或多个术语构成陈述[1] 用户还可以点击术语[2]和 创建另一个连接到此术语的语句[3] 一旦他们解决了这个子语句[4] 他们可以回到主语句[5],突出另一个术语,以此类推 如果需要,他们应该能够深入到一个以上的层次。比如,在子语句中选择另一个术语并创建另一个语句等。 我不知道如何在coredata中创建这样的模式 我已经有了我的术语和语句实体,我最初将

我确实有一个问题,我很难弄清楚如何在coredata中布局关系。我试图想象下面的问题

基本上,在我的应用程序中,用户有由术语组成的语句

  • 一个或多个术语构成陈述[1]
  • 用户还可以点击术语[2]和
  • 创建另一个连接到此术语的语句[3]
  • 一旦他们解决了这个子语句[4]
  • 他们可以回到主语句[5],突出另一个术语,以此类推
如果需要,他们应该能够深入到一个以上的层次。比如,在子语句中选择另一个术语并创建另一个语句等。 我不知道如何在coredata中创建这样的模式

我已经有了我的术语和语句实体,我最初将语句和子语句分离为两个不同的实体,但我不完全确定这是否是一种方法

我认为更有效的方法是将每个语句存储在一个实体中,并与术语建立关系,但我不确定如何计算级别

如果有任何指示,我将不胜感激


看起来您只有一个实体(我们称之为术语)有一个值和一个或多个子术语(它们是对同一实体类型的引用)。实体还应该有一个对其父术语实体的引用。您所称的语句只是没有父值的术语实体的特例Hi Paul,谢谢您的回答。我知道我应该在术语中存储对父实体的引用,以便以后访问它。然而,我不明白为什么我应该只有一个实体。在我当前的设置中,我使用术语来做陈述。因此,每个术语都引用了它所属的语句。您的建议是,它还应该有一个属性来保存对父语句的引用,这是可选的。我做对了吗?我不明白为什么我不需要一个语句实体。再次感谢。因为从我看来,这是一个简单的递归数据结构。当您查看语句和术语的字段/属性时,它们是相同的-区别在于语句没有父级。