我有一个代表层次结构的数据结构。
- 文件夹
- 文件夹
- 文件夹
- 文件
- 文件
- 等等
- 文件夹
权限存储在一个平面表中:
| pKey | type | bitperms |
在执行搜索等全局操作时,我们需要在树中递归地检查权限。
检查与树结构的各个叶子内联的权限很容易。然而,考虑节点上的权限需要两种已知方法之一:
- 获取过滤后的叶子后,对每个叶子进行后期处理以检查它的父母烫发
- 成本延迟到之后
- 可能找到很多初始叶子,但是在处理父母之后,什么都没有留下,导致做无用的工作
提前计算所有根(授予权限的节点),并在获取叶子时将其用作查询过滤器
- 如果存在许多根导致处理每个叶子花费过多时间,则可能是一个巨大的查询
是否存在任何算法可以更有效地执行此操作?也许重新组织权限数据或向层次结构添加更多信息?
也许添加一些启发式方法来处理极端情况?