场景
当时面试官提的问题大概是这样:
有一个用户表,一个数据表,一个权限表。
用户表中的每个用户有不同的权限,分别可以查看数据表中固定字段的数据。
就比如,有个用户是销售部门的,他只可查看销售额,客户信息等,
有个用户是财务部门的,他可以查看员工薪资等信息,老板可以查看全部信息。
不同用户登录,展示不同字段的数据,这样你会怎么做?
我的想法
我的想法是直接将数据查询出来,返回给前端,并且把当前登录用户需要展示的字段发给前端,让前端进行部分可见,部分隐藏。
但是这样会有个问题:你数据表中的字段会暴露。这样是不安全的。
新解决办法
最新重新看了下数据库的东西。突然发现了华点!
这个新方法的核心就是:视图
- 我们可以根据不同的用户权限,建立视图,编写查询不同字段的sql
- 进行查询时,根据当前登录用户,获取其对应权限,进而获取对应的视图名,直接调用视图返回给前端即可。
- 在修改删除数据时,对视图进行增删改,实际是直接操作基础表,这样增删改也不会有问题。