最近在做一个项目,涉及到对系统用户的角色信息更改。比如
此管理员的原有的权限有两个,此时删除一个角色(园区管理),增加另一个角色(普通管理员),此时如何更新数据库呢?
原来的我做法是:先查出用户所有的角色,然后根据此次提交的数据对比,依次得到需要删除的用户角色,此次要新增的用户角色,依次更新数据库。代码如下:
此方式较为繁琐,频繁操作数据库。可以换一种方式解决,从数据库的角度出发:
我们可以设置:userId+roleId为唯一索引,通过增加一个角色删除标志字段角色。
更新数据库的步骤如下,首先将用户的所有角色都更新为停用,然后依次新增提交的用户角色。因为设置的唯一索引,当新增的用户id和角色id冲突时候,只需将原来的角色更新为正常。代码如下: