当前位置:   article > 正文

用户,角色,权限三者的关系?让你设计用户权限系统,你会设计几张表?为什么要这样设计?_角色权限是如何划分的

角色权限是如何划分的

目录

1. 用户,角色,权限

2. 权限系统实现的两种方案

2.1 用户+权限实现权限系统

2.2 用户+角色+权限实现权限系统


1. 用户,角色,权限

用户:很简单的一个词,你做出来一个产品,或者一个网站,别人浏览使用你的产品,那么他就是你的用户。

角色:角色是用户更高一层的抽象。刚才我们说到了,所有人都可以使用户,但在众多用户中,我们可以对他们进行细粒度的划分,例如对大多数人都只是普通的用户,有少部分人不仅是用户,也拥有管理员身份。这只是简单的划分,例如一个复杂的系统网上购物系统中,有普通用户,有VIP高级用户,有超级管理员,有货物供应商,它们所对应着各自不同的权限。

权限:当然,既然是一个产品,那么它就是给人用的,但对于不同的人,不可能给出相同的权限,我们不会让普通用户拥有管理员的权限,简单来说,用户通常只有查看的权利,没有增删改的权利,这就是权限最直观的体现。

用户和角色多对多关系:一个管理员,他既有用户的角色身份,又有管理员的角色身份;反之,一个管理员,也不一定只对应一个用户,多个用户都可以是管理员。

角色和权限多对多关系:一个管理员,他既有普通用户的权限,又有普通用户没有的管理员权限;反之,多个人都可以拥有同一个相同的权限。

2. 权限系统实现的两种方案

2.1 用户+权限实现权限系统

在有些小的项目中,我们通常会发现关于用户权限的设计非常简单,通常都是设计一个权限表列出各种权限,然后就是用户表,用户表中设计一个权限字段关联权限表的主键,从而达到设计用户权限的目的。

这种实现权限的方式优点就是非常简单,只需要两张表就可以完成,程序代码也非常简单,难度较低;

缺点就是用户操作不便,权限关系比较乱,当然这只是相对而言,我们一会会拿它和方案二来做对比;

2.2 用户+角色+权限实现权限系统

这种方式是比较广泛使用的权限设计系统,它需要设计五张表,分别是

t1:用户表;

t2:角色表;

t3:权限表;

t4:用户和角色关联表;

t5:角色和权限关联表;

 第二种方案要比第一种方案在编码层面更复杂,需要用到5张表,并需要用到多表查询,但是却非常利于系统对各个用户的权限控制,加入角色表我们可以将所有的用户划分为不同的角色,让权限关系更加清晰,当我们需要添加新的用户时,只需要让他与角色表相关联,然后就可以通过角色与权限关联表确认当前用户都具有哪些权限,程序的健壮性和可扩展性更强。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/436966
推荐阅读
相关标签
  

闽ICP备14008679号