一、模型整体设计
二、模型说明
该设计参考现在比较通用的权限管理设计模式,权限管理模型包括
2.1 用户表
记录用户的基本信息,包括用户名、密码、头像、性别,是否可用、状态、电话、所属部门等。
2.2 部门表
用户和部门的关系是多对一的关系,一个用户只能属于某一个部门,一个部门可能会有多个用户。部门有父子关系,一个部门下面可能会有一个或多个子部门。
2.3 角色表
定义角色的代码名称备注。角色和用户是多对多的关系。
2.4 菜单表
定义菜单的名称、路径、图标、顺序、是否可用、参数、备注等。这里菜单有父子关系。另外菜单添加一个扩展参数类型,这样用户登录的时候会把这些参数发送给前端界面,方便做一些配置。如:页面需要调用数据字典的摸个类型时,一种方法是在界面直接根据数据字典类型的代码查到相应的数据字典的值,但是这样会有一个问题,当数据字典类型的代码修改的时候那么我就需要修改代码。第二张方法是给需要调用的数据字典类型设置一个别名,这样通过别名和类型的关系来查找相应的数据字典的值,这样的话即使数据字典的类型改变了,那么我修改别名对应的类型就可以了,不用更新代码。这里的扩展参数这个字段可以设置别名和字典类型的对应关系。
2.5 菜单明细表
设置菜单明细关系,如菜单有查询,修改,删除,添加几个功能,在授权的时候对角色授予这个菜单一部分或者全部的权限。达到权限控制精细化的作用。类如,某用户只有查询的权限,那么久会把修改,删除相关的按钮进行隐藏。
2.6 用户个性表
用户个性化表字段包括用户id、个性化的类型、参数、备注,可以设置用户的一部分自定义信息。例如:table的列显示顺序、需要显示的字段、界面菜单的主体、导航栏的展示方式等。这样做的好处是用户自己可以比较灵活的调整一部分界面的展示。比如说一个公司两个部门的用户同时用某一个页面,但是两个部门的使用人员关注的东西不一样,A部门想要将一些字段放到前面,但是B部门有想放到后面。这样的话如果没有这个功能就要分别给两个部门都做一个界面,而且两个界面代码90%以上是一样的,如果这样的界面很多维护就会很累了。