这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间、角色与权限之间,通常都是多对多的关系。如下图:
如果用户的数量非常大的时候,就需要给系统的每一个用户逐一授权(分配角色),这是件非常繁琐的事情,这时就可以增加一个用户组,每个用户组内有多个用户,除了给单个用户授权外,还可以给用户组授权。
这样一来,通过一次授权,就可以同时给多个用户授予相同的权限,而这时用户的所有权限就是用户个人拥有的权限与该用户所在组所拥有的权限之和。用户组、用户与角色三者的关联关系如下图:
通常在应用系统里面的权限我们把它表现为菜单的访问(页面级)、功能模块的操作(功能级)、文件上传的删改,甚至页面上某个按钮、图片是否可见等等都属于权限的范畴。
有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-角色-权限-资源”的授权模型。
而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。如下图:
这样设计的好处有两个&