业务系统 权限管理系统

来源:互联网 发布:数据备份的重要性 编辑:程序博客网 时间:2024/04/28 06:55

权限管理系统需要涉及到的几张表:

权限系统实现的简单过程描述:

1.本系统使用的struts2+spring+jpa来实现的。
2.数据库使用mysql,数据文件为test.sql。

本系统实现的思考过程如下:


1.用户登录
通过用户的登录可以记录下来用户的信息,把信息加入到session中,通过跳转

到其他的页面的请求来获取当前用户所拥有的模块。

2.进入页面之后第一步加载所有的模块树
加载模块树的关键在于:通过用户找到它对应的角色->通过角色找到对应的功能

->通过功能找到对应的模块。也就是功能类型决定了模块类型。
纯sql语句的写法如下:
select distinct  module.*  
from 
userinfo,user_role,role,role_function,functions,module
where
userinfo.id = 1 and
user_role.userid = userinfo.id and 
user_role.roleid = role.id and
role_function.roleid = role.id and
role_function.functionid = functions.id and
functions.moduleid = module.id

3.点击模块加载功能树
通过点击特定的模块来加载对应的功能关键在于:功能是由角色来确定的,而不

是模块来确定的,模块只是多个具有共同特点功能的一个统称,一个用户所能够

使用的功能取决于他所属的角色,角色有什么样的功能就可以加载什么样的功能

,而模块的作用在于限定了在获取用户功能的时候获取用户在当前模块中所拥有

的功能,这样避免了一次性加载一个用户下面的所有功能,而这些功能之间没有

太大关联。
纯sql语句的写法如下:
select  functions.*  
from 
functions ,role_function ,module,role
where
role.id =1 and
module.id=9 and 
role_function.roleid =role.id  and 
role_function.functionid = functions.id and 
module.id = functions.moduleid

4.点击功能执行具体的功能

当点击了特定的模块之后,当前获取出来的就是特定用户在特定模块下所拥有的

动能了,这个时候那些功能的链接就是他的权限了,通过点击这些链接用户就可

以到特定的功能下执行特定的操作了,其他特定的操作都是具体的增删改查了。

ps:当然真正做项目的时候使用的jpa的框架,查询语句使用的是对象查询语句,

其实要比上面的写法简单不少的,这也是框架的好处,让我们把更多的精力放在

业务逻辑处理上而不是放大量的精力在sql语句的处理上。

原创粉丝点击