求一种查询的优化算法
最近做项目,碰到一个问题。
数据表的结构如下
HierarchyId,NodeName ,ParentId三列,
最高管理员的的权限为根节点,ParentId为0
其他人的权限是根节点以下的,通过ParentId向上递归最终都可以到达根节点。
现在需要做的是根据节点名模糊查询,如果是最高管理员,没有问题,查询的结果肯定是子权限范围内的。
如果不是最高管理员,那么怎样确保查询的结果在这个人的权限范围内。
现在我的做法是,先得到这个人的权限节点,然后把查询得到的结果,一个个向上递归查找。如果者条线上的节点包含了这个人的权限节点,说明是操作者的权限范围,就添加进最后的实际结果。
但是这样实际运行效率不高。
希望有更优化的算法实现。