我有一个实体,其中一个属性称为“总计”。实体与其自身有关系。与子实体一对一的关系,与父实体一对一的关系。 Graph
一个父母可以生很多孩子,每个孩子可以有自己的孩子。 每个父母的总数等于其孩子总数的总和。当更改孩子总数或删除影响所有父母总数的孩子到根父母时,我需要采取行动。
有什么解决办法吗?
答案 0 :(得分:0)
首先,不清楚total
的含义。您曾经说过这是一个财产,然后又说它是根据其子项的价值计算的。对我而言,这意味着您实际上拥有两个不同的属性。一个是value
,对于有孩子的实体,该值通常(总是?)为零;另一个是total
,它是根据其自身的value
加上{{1 }}它的所有子代及其子代。我怀疑这是吸引您的主要想法。
第二个问题是计算value
的效率,这可能是一个漫长的递归过程。首先,不要尝试进行预优化。如果您的图形只有几层深,则很可能在需要时计算值不是一个漫长的过程。当且仅当您发现它正在讨论很长时间,并认为最好的方法是在图表中预先计算总数,这并不难。
total
属性中total
属性中移除其值total
属性中减去旧值与新值的差值