首页 新闻 搜索 专区 学院

上下级权限怎么设计

0
悬赏园豆:10 [待解决问题]

比如会员系统,推荐人和被推荐人。

比如 A->B->C->D 。。。。。。。

A推荐B,B推荐C,C推荐

要求A登录能看到A、B、C、D的所有记录。

B登录能看到 B、C、D

C登录能看到C、D

。。。。。。。

但A 又能推荐 B1、B2、B3

总的来说是一个树。

他们的记录A如果查看? 递归,如果数据量大,那性能不行吧。

要怎么作?

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2013-04-22 21:58
< >
分享
所有回答(3)
0

是SQL SERVER么?写个表值函数行了

create FUNCTION [dbo].[f_xxx]
    (
    @id INTEGER
    )
RETURNS TABLE
AS
RETURN
    (
    WITH    ctb ( upid, cid )
              AS ( SELECT  
                            parent_node_id ,
                            child_node_id cid
                   FROM     tablexxx
                   WHERE    parent_node_id = @id
                   UNION ALL
                   SELECT  
                            b.cid ,
                            A.child_node_id
                   FROM     tablexxx A ,
                            ctb B
                   WHERE    a.parent_node_id = b.[cid]
                 )
    SELECT  *
    FROM    ctb
)

五行缺木 | 园豆:386 (菜鸟二级) | 2013-04-23 08:41
0

加一个冗余字段,记录 节点的深度。例如 D的深度就是 A->B->C->D,

B的深度就是 A->B,查询的时候使用 深度 LIKE 当前登录人的组织,

geass.. | 园豆:1785 (小虾三级) | 2013-04-23 11:44
0

欢迎加入.Net高级部落173844862

辛巴 | 园豆:622 (小虾三级) | 2013-04-23 11:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册