gpt4 book ai didi

swift - Core Data 中父实体的计算属性

转载 作者:行者123 更新时间:2023-11-30 11:15:00 24 4
gpt4 key购买 nike

我有一个实体,它有一个名为“total”的属性。实体与自身有关系。与子实体的一对多关系以及与父实体的一对一关系。 Graph

一个 parent 可以有很多 child ,每个 child 都可以有自己的 child 。每个 parent 的总和等于其 child 总和的总和。当更改子项总数或删除影响根父项的所有父项总数的子项时,我需要行为。

Example of parent-child tree

有什么解决办法吗?

最佳答案

首先,不清楚总计的含义。一方面你说它是一项属性(property),然后你又说它是根据其子项的值(value)计算的。这对我来说意味着你实际上拥有两种不同的属性。一种是value,对于有子实体的实体来说通常(总是?)为零,另一种是total,它是基于其自身值之和计算得出的属性 加上其所有子项及其子项的 等。我怀疑这是让您绊倒的主要想法。

第二个问题是计算总计的效率,这可能是一个很长的递归过程。首先,不要尝试预先优化。如果你的图只有几深,那么在需要时计算值很可能不是一个漫长的过程。如果且仅当您发现它正在谈论很长的时间并且认为最好的方法是在图表中预先计算总数时,它应该不那么难。

  1. 有一个地方可以插入、删除节点或更改其值。应用程序中的所有更改都会转到该位置。
  2. 插入节点后,会在图表中向上移动,并将其值添加到其所有父节点的 total 属性
  3. 当一个节点被删除时,在图表中向上移动并从其所有父节点的 total 属性中删除它的值
  4. 当节点的值发生更改时,在图表中向上移动,并从其所有父节点的 total 属性中减去旧值与新值的差值

关于swift - Core Data 中父实体的计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51826325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com