1

如题,一般后台管理员用户和会员用户是否要分开,分成两张用户表,一个会员用户表,一个管理员用户表,如果只用一张表可以吗,哪个更好

2016-04-26 提问

查看全部 7 个回答

16

这是个常见的疑问,也是个好问题。

技术决策没有一定之规。实际上这两种实践都是存在的,也都有不少优秀的应用实例。

一个系统总需要解决验证鉴权,即“你是不是声称的这个人”和“这个人是否可以做这件事”两个问题。

从这个角度来看,根据用户身份进行划分,来确定用户的权限范围,这只不过是实现“鉴权”这个目的的可行方法之一,并无什么神秘之处。

管理员/用户分表,这是划分用户身份的一个相当粗暴的二分手段。其特点是:

  • 非己即彼,两者之间存在着不可逾越的鸿沟,几乎无法切换身份

  • 二者能做的行为之间,几乎不存在产生关联的交叉地带,非黑即白

  • 甚至二者的界面都不用一套

  • 【重要】以上的特性确定下来了就不会再改变

如果你的需求符合以上特点,那么分表就是可以的。否则就不应该分。

但必须指出的是:分表能实现的权限控制,不分表一般都是能做到的。所以为了保留灵活性起见,一般不分表是个好选择,尤其是对于新写的程序(需求可能有频繁变更)更是如此。

推荐答案

8

已采纳

谢邀!

我的职业生涯中几乎所有的前后台管理会员都是分开的,大部分做的都是互联网产品,我觉得我可以总结出几点为什么要这么做:

  1. 业务需求:一般总管理后台都是公司内部使用,不牵涉第三方用户,假设真有第三方的分销商、代理商之类的也会开发一个专门的用户后台

  2. 安全需求:安全在业界达成共识的是没有绝对的安全,那么就要尽可能的考虑病增加被黑的难度,第一层就是把管理后台藏起来(限制IP、不用常用域名、目录等),第二层就算发现了也尽量不要用弱密码,加验证码防暴力破解之类的,然后再其他层面问题,可能还会存在分开部署的需求,独立的话更容易扩展一些满足更多的需求

推广链接