【发布时间】:2013-12-04 17:31:53
【问题描述】:
首先,设计:我需要某种树,其中每个节点可以有任意数量的子节点。每个节点都携带一个有效载荷。节点的总有效负载是特定节点的有效负载+它的所有祖先的有效负载直到根节点。
预计在树上执行的操作是:插入、更新、删除(相当频繁)、将子树合并到树中(不太频繁)。还有一个操作是改变子树在树中的位置,随后重新计算节点及其所有后代的有效负载。
具体的实现可以是任何东西,从简单的持久映射到专门设计的 MySQL 模式(也考虑了 NoSQL 解决方案)。首选语言(或存在绑定)是 Java,但如果您能就正确的数据结构给我一个建议,那也很好。
问题是 - 在我的情况下最合适的解决方案是什么?
【问题讨论】:
-
抱歉,问题是?
-
@Taylor,今天天气怎么样?,当然
-
sql 中的树,你有几个选择。一种是一对多的节点到节点的关系。这在某些情况下有效,但是您不知道给定节点的深度,并且需要递归地爬上 sql 最讨厌的树。另一种方法是嵌套集。 en.wikipedia.org/wiki/Nested_set_model
标签: java mysql database data-structures persistence