五表权限_表格设置查看权限和编辑权限

五表权限_表格设置查看权限和编辑权限设计基础:用户、角色、权限三大核心表,加上用户角色、角色权限两个映射表(用于给用户表联系上权限表)。这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限。大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。各表的大体表结构如下:1、用户表(UserInfo):Id、Use…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

设计基础:用户、角色、权限三大核心表,加上用户角色、角色权限两个映射表(用于给用户表联系上权限表)。这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限。

大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。

各表的大体表结构如下:

1、用户表(UserInfo):Id、UserName、UserPwd

2、角色表(RoleInfo):Id、RoleName

3、菜单表(MenuInfo):Id、MenuName

4、用户角色表(UserRole):Id、UserId、RoleId

5、角色菜单表(RoleMenu):Id、RoleId、MenuId

最关键的地方是,某个用户登录时,如何查找该用户的菜单权限?其实一条语句即可搞定:

假如用户的用户名为Arthur,则他的菜单权限查询如下:

Select m.Id,m.MenuName from MenuInfo m ,UserInfo u, UserRole ur, RoleMenu rm Where m.Id = rm.MenuId and ur.RoleId = rm.RoleId and ur.UserId = u.Id and u.UserName = ‘Arthur’

任何权限的需求,都是为广义的用户分配角色,角色拥有广义的权限。角色是最重要的中枢,隐藏做幕后黑手,从不出现在业务代码里,用行话说就是解除了用户和权限的直接耦合。

角色把用户抽象化了,几百个用户变成成几个角色,用户->角色->权限写成通用判断权限的方法:currUser.IsHave(xx权限)。核心就是一个sql联表查询语句,查询条件为用户id。

例如:
部门权限:部门也是一种用户,建立 部门表、部门角色表。通用权限方法里加上 当前部门->部门所属角色->权限
职位权限:职位也是一种用户,建立职位表、职位角色表,同上
菜单:也是一种权限,建立 菜单表、角色菜单表,就把菜单纳入了权限管理。通用权限方法里加上 角色列表->权限、菜单

使用Microsoft SQL Server应用代码构建如下:

1、用户信息表:

create table employee
(
userid varchar(50) not null, –用户ID
username varchar(100), –用户名
userpassword varchar(100), –密码




)
alter table employee –主键
add constraint pk_employee_userid primary key (userid)
 2、角色表:

create table role
(
roleid varchar(50) not null, –角色Id
rolename varchar(100), –角色名称
)
alter table tole –主键
add constraint pk_role_roleid primary key (roleid)
  3、权限菜单表

create table popedom
(
popedomid int identity(1,1) not null, –权限Id
popedomname varchar(100), –权限名称
popedomfatherid int, –权限父ID
popedomurl varchar(100) –树的连接路径



er table popedom –主键
add constraint PK_popedom primary key (popedomid)
  添加数据如
insert into popedom values(‘我的办公桌’,0,’’)
insert into popedom values(‘电子邮箱’,1,’…/mail/EmaiolManage.aspx’)
(添加数据的原则是一级接点的popedomfatherid 为0,如果是(我的办公桌)下面的接点,它们的popedomfatherid为(我的办公桌)的主键)

4、用户与角色关系表

create table user_role
(
connectionid int identity(1,1) not null, –关系ID
userid varchar(50) not null, –管理员表ID
roleid varchar(50) not null –角色Id
)
alter table user_role –主键
add constraint PK_admin_role primary key(connectionid)
  5、角色与权限关系表

create table role_popedom –角色与权限表
(
connectionid int identity(1,1), –关系Id
roleid varchar(50) not null, –角色ID
popedomid int not null, –权限Id
popedom int –权限 (1为可用,2为不可用)
)
alter table role_popedom –主键
add constraint PK_role_popedom primary key(connectionid) –主键

6、五表之间的关联

在这里插入图片描述

`

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187845.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • PhpSpreadsheet_phpquery手册

    PhpSpreadsheet_phpquery手册phpexcel导出PhpSpreadsheet详解引入正确的文件并实例化usePhpOffice\PhpSpreadsheet\Spreadsheet;$spreadsheet=newSpreadsheet();$worksheet=$spreadsheet->getActiveSheet();赋值//给A2赋值hello$worksheet->…

  • js把HTML转成对象,将js对象转换为html「建议收藏」

    js把HTML转成对象,将js对象转换为html「建议收藏」好的,我有一些JS通过URL从JSON中提取数据。我知道想要将每个对象(author_name,rating,author_url)转换为jsID,所以我可以在html中调用该ID。将js对象转换为html例如这是我的JS代码到目前为止functioninitMap(){varservice=newgoogle.maps.places.PlacesService(map);serv…

  • vs实现用户注册登录_用户注册登录怎么填写

    vs实现用户注册登录_用户注册登录怎么填写publicstaticUserInfoGetUser(stringname,stringpwd){//填写搜索姓名和密码的sql语句stringsql=string.Format(“select*fromUserInfowhereLoginName='{0}’andPassword='{1}'”,name,pwd);DataTabledt=DBHelper.ExcuteTab.

    2022年10月13日
  • 计算机机房整改工作报告,机房整改总结.doc

    计算机机房整改工作报告,机房整改总结.docXX机房整改方案目录一、XX站整改项目说明3二、XX站整改项目目标3三、项目实施要求41、可靠性:42、环境保护:43、灵活性:44、安全性:4四、施工方案简述4第一部分机房工程方案4第二部分:机房装修设计及施工方案6第三部分机房外缆整改及设备支座制作8五、机房综合工程设计标准10六、效果图11XX站整改项目说明本次XX站机房整改项目主要涉及XXX二楼机房、话务机房、电源机房等机房的整体维护。…

  • SpringBoot集成Eurake、Gateway和Redis+Token验证拦截器实现

    SpringBoot集成Eurake、Gateway和Redis+Token验证拦截器实现SpringBoot聚合项目配置Eurake和Gateway一、版本信息:SpringBoot <version>2.2.6.RELEASE</version>SpringCloud <spring-cloud.version>Hoxton.SR1</spring-cloud.version>二、开始配置一个聚合项目1.先建一个父级工程:最终pom.xml配置如下:<?xmlversion=”1.0″encodin

  • 一个软件完整的开发流程介绍

    一个软件完整的开发流程介绍刚开始写博文的时候就应该将这个文章更新一下,虽然不是什么大牛,但是对于软件的开发流程还是比较了解的,毕竟大大小小做过了好几个项目了,今天就大概的说一下,用我做过的一个项目来说吧,写的不好的,请多多见谅,毕竟小生不才。开发流程百度的解释是:不是我懒得写,而是觉得写出来也不是自己的,还不如直接告诉你们我是百度的概念…但是下面的我们就不要百度了,因为百度说的太专业,让你看了很烦,最起码我是很烦(都是…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号