java实现用户权限模块两种方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiejunna/article/details/89082785

方法一:
一般用这种比较多的,3个模块:用户模块、角色模块、菜单模块,对应数据库表:用户表、角色表、菜单表、用户角色表、角色菜单表,这种方法实现思路表结构都清晰明确,当然也存在一个弊端:菜单表添加菜单时,因为菜单中存在父子关系,不懂技术的添加菜单表容易出错

表结构:
用户表
`id` INT
`login_name` VARCHAR
`password` VARCHAR
`user_name` VARCHAR
角色表
`id` INT
`role_name` VARCHAR
`role_describe` VARCHAR
菜单表(此表定义以下字段,是因为前端是vue写的,可根据自己选择的框架调整字段):
`id` INT
`path` VARCHAR
`component` VARCHAR
`menu_name` VARCHAR
`menu_type` VARCHAR
`parent_id` VARCHAR
`enabled` VARCHAR
`group_id` VARCHAR
用户角色表(用户分配角色,使用此表)
`id` INT
`user_id` INT 用户表id
`role_id` INT 角色表id
角色菜单表(角色分配菜单使用此表)
`id` INT
`menu_id` INT 菜单表id
`role_id` INT 角色表id

方法二:
这是一个简化版本的,但实现起来比较简单,对于方法一,砍掉了角色,对于小项目来说比较适合。两个模块:用户模块,权限模块,对应数据库表:用户表、权限表,这里用户表和方法一的用户表基本相同,可以根据需要添加部门字段,权限表中不存放菜单信息,菜单信息存放到前端,可以是一个json格式,但表中要存菜单对应的id,用户id,这就和用户表关联起来了。
前端查询用户表,显示用户列表,点击某个用户时,查询其权限列表,显示对应的权限列表(树形结构的),已经拥有的权限是勾选状态。

用户表
`id` INT
`login_name` VARCHAR
`password` VARCHAR
`user_name` VARCHAR
`department` VARCHAR
权限表
`id` INT
`resource_id` INT 此字段对应前端的菜单id
`user_id` INT 用于关联用户表

猜你喜欢

转载自blog.csdn.net/xiejunna/article/details/89082785
今日推荐