我有一个树结构。每个 Node 都有以下字段:
- _id
- 嵌套级别
- oldersAnscestorId
- ...其他值
如果给我一个 Node A 和一个 Node B,其中 B.nestingLevel > A.nestingLevel
,我如何才能知道 B 是 A 的后代?
我正在考虑使用 uuid 版本 3,它使用命名空间来以某种方式找到相关性,但目前不确定它如何帮助我。
另一个想法是使用某种动态生成的键,该键可以接受不同的值,例如更深层次嵌套 Node 的 nestingLevel
、_id
以及其他值来找出它们的相关性。
更新
我认为遍历不是一个好的选择,因为我在微服务架构中使用了这种方法,而遍历意味着与另一个服务进行通信。将树移动到另一个服务也不是一个选择,因为我必须使用当前的服务来查询数据库
最佳答案
我将添加一个数组,存储 Node 中所有父 Node 的一些唯一哈希值,然后检查使用它。当然,这是可以优化的。
关于node.js - 如何确定树 Node 是否是当前 Node 的间接后代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214253/