关于权限的查询。。谢谢留下sql语句 200分奉上
来源:百度知道 编辑:UC知道 时间:2024/06/10 21:58:03
都说用户,角色和权限是多对多的关系,那么就是要转化成一对多的形式查询,那么就要又加两个表。那不是5张表了吗?
(用户表 1) -> (n 用户角色表 n) <- (1 角色表 1) -> (n 角色权限表 n) <- (1 权限表)
那我如何查询一个用户的权限呢?
假设每个表只有两个字段:id,name.不是用配置文件查询。。谢谢
(用户表 1) -> (n 用户角色表 n) <- (1 角色表 1) -> (n 角色权限表 n) <- (1 权限表)
那我如何查询一个用户的权限呢?
假设每个表只有两个字段:id,name.不是用配置文件查询。。谢谢
1。只需要一张中间表(user_role_right)
字段:user_id,role_id,right_id,id(该表自身id)四个字段。
2。
查询用户编号为001的所有权限,假定权限表为:right
select * from right where id in
(select right_id from user_role_right where uese_id=001
)
用户表(id,name)
角色表(id,name)
权限表(id,name)
用户角色表(uid(用户id),rid(角色id))
角色权限表(rid(角色id),aid(权限id))
查询主要用子查询,一层一层下去
select * from 权限表 where [id] in
(
select aid from 角色权限表 where rid in
(
select rid from 用户角色表 where uid=
(
select [id] from 用户表 where [name]='用户名'
)
)
)
为什么要那么多表 = =||