用户,角色,功能三者之间的关系视图
2007-12-24 22:37
429 查看
假设有如下数据库结构:
create table userinfo(id varchar(20),name varchar(20));
create table roleinfo(id varchar(20),name varchar(20));
create table functioninfo(id varchar(20),name varchar(20));
create table userrole(userid varchar(20),roleid varchar(20));
create table rolefunction(roleid varchar(20),functionid varchar(20));
insert into userinfo values("1","gao1");
insert into userinfo values("2","gao2");
insert into userinfo values("3","gao3");
insert into roleinfo values("1","role1");
insert into roleinfo values("2","role2");
insert into roleinfo values("3","role3");
insert into functioninfo values("1","function1");
insert into functioninfo values("2","function2");
insert into functioninfo values("3","function3");
insert into userrole values("1","1");
insert into userrole values("1","2");
insert into userrole values("2","2");
insert into userrole values("3","1");
insert into userrole values("3","2");
insert into userrole values("3","3");
insert into role function values("1","1");
insert into role function values("1","2");
insert into role function values("2","2");
insert into role function values("3","1");
insert into role function values("3","2");
insert into role function values("3","3");
我们可以根据三者连接的结果建立视图,得出整个权限模型的数据
select u.name as username,r.name as rolename,f.name as functionname
from userrole ur inner join userinfo u on ur.userid=u.id
inner join roleinfo r on ur.roleid=r.id
inner join rolefunction rf on rf.roleid=r.id
inner join functioninfo f on rf.functionid=f.id
order by u.name;
结果:
create table userinfo(id varchar(20),name varchar(20));
create table roleinfo(id varchar(20),name varchar(20));
create table functioninfo(id varchar(20),name varchar(20));
create table userrole(userid varchar(20),roleid varchar(20));
create table rolefunction(roleid varchar(20),functionid varchar(20));
insert into userinfo values("1","gao1");
insert into userinfo values("2","gao2");
insert into userinfo values("3","gao3");
insert into roleinfo values("1","role1");
insert into roleinfo values("2","role2");
insert into roleinfo values("3","role3");
insert into functioninfo values("1","function1");
insert into functioninfo values("2","function2");
insert into functioninfo values("3","function3");
insert into userrole values("1","1");
insert into userrole values("1","2");
insert into userrole values("2","2");
insert into userrole values("3","1");
insert into userrole values("3","2");
insert into userrole values("3","3");
insert into role function values("1","1");
insert into role function values("1","2");
insert into role function values("2","2");
insert into role function values("3","1");
insert into role function values("3","2");
insert into role function values("3","3");
我们可以根据三者连接的结果建立视图,得出整个权限模型的数据
select u.name as username,r.name as rolename,f.name as functionname
from userrole ur inner join userinfo u on ur.userid=u.id
inner join roleinfo r on ur.roleid=r.id
inner join rolefunction rf on rf.roleid=r.id
inner join functioninfo f on rf.functionid=f.id
order by u.name;
结果:
相关文章推荐
- 用户,角色,功能三者之间的关系视图
- 用户,角色,功能三者之间的关系视图
- 使用视图取出用户,功能,角色,用户角色,角色功能5张表的关系
- 用户角色权限设计-三者关系
- 提问:信息系统中的功能模块、业务、服务三者之间的关系?
- 项目设计中关于权限,角色,操作功能三者之间的探讨总结(2009-03-14)
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系
- ORACLE如何查看修改连接数,进程数及用户数,三者之间关系
- Dynamics crm 中的业务部门,用户,角色,权限之间相互关系(二)
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系(转)
- Oracle 10g如何查看修改连接数,进程数及用户数,三者之间有什么关系?
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系
- Sql2000中的角色与用户之间的处理关系
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系
- Dynamics crm 中的业务部门,用户,角色,权限之间相互关系(一)
- PostgreSQL表空间_数据库_模式_表_用户角色之间的关系[转]
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系 (转)
- PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系