首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

权限分级的有关问题,请

2012-02-22 
权限分级的问题,请高手指点如图,要实现以下功能:U1可以查看所以人的信息,U2只能查看U5,U6,U7的(也就是他自

权限分级的问题,请高手指点


如图,要实现以下功能:U1可以查看所以人的信息,U2只能查看U5,U6,U7的(也就是他自己创建的)。其他U3,U4类推。
如果U5又创建了几个用户,那么U2还能看到U5创建的用户信息,但不能看到U3,U4创建的用户。
请问高手如果解决?可以说说你们的想法,比如怎么建表之类的。分级最好能动态的实现。

[解决办法]
递归一棵树,树的建立条件以他自己为根节点建立即可

可在登录时把登录用户的单位编号写入session

递归树的函数需要参数为(他本身的编号,他父一级的编号)
{
select * from table where parentid='父一级编号' and id='他本身编号'
递归代码绑定单位树
}
[解决办法]
在数据库用户信息表加级别标识字段不可以吗?如SQ2000: Authority_Logo Varchar (50) not null,
U1: 录入aa
U2: 录入aabb, U3:录入aacc
U5: 录入aabbee ..........
类推,查看时再根据该字段屏蔽其他不可见用户
[解决办法]
可以通过三种方式实现
1 依据父子关联的原理设计数据表 每一用户都可创建新用户 被创建的新用户的父ID即为创建它的用户ID(当然 顶层用户只有一个 它的父ID是默认值或自定义的值 为不造成混乱可约定其为<=0的任意值) 这样可以通过通过一个简单的递归算法就能判断一个用户(设ID为66)是不是另一个用户(设ID为8)的直接子用户或间接子用户
表结构示例如下

SQL code
create table userInfo{    id int        identity(1,1),    parentId    int default(0),    userName    varchar(50) not null,    addTime        datetime deafult(getdate())    --    其它字段} 

热点排行