简单权限系统设计(二)数据库设计简单解说
首先,新年好,哈哈。
很高兴,有人能关心偶的文章,能对大家有帮助是最好的了,当然还是要申明,本人不对该文章的正确与否打任何包票,有任何问题欢迎留言。
先放上数据库脚本.sql
结束唠叨,下面进入主题。
既然是简单的权限系统,那么就从最简单的地方开始,一步步完善系统的数据库设计。
任何一个权限系统都至少有用户吧,呵呵,不然还叫什么权限系统呢。
大致需要以上这些属性,因为是比较简单的,所以就没弄多少,如果需要扩展,可以使用profile来实现。
然后就是角色属性及角色属性和用户属性的绑定,形成角色用户的联系。
按部就班的来,role_info表主要的属性就id,level,level用于标志用户角色等级,是个比较有用的属性,在逻辑操作中可以较明确的实现树形权限层次的展开。
下面就是存储用户行为的action表了,存储需要的操作权限,基本上如下,有需要更加细密度的操作可以自己酌情添加。
至此,大家可以看到基本上一个框架就形成了,下面要做的就是怎么填充了。
由于系统简单,需要管理的主要有页面目录,即需要一个menu表,然后还需要一个catalog表来实现对自己增加的项目的管理,如文件保存等,根据自己需要来增加表。
下面以我使用的文档存储目录catalog_info表来说明,catalog_info表如下:
主要就是father_id,id,level,使用father_id是为了实现树形的权限,也便于操作,在以后的文章中我会详细的说。
所有的操作都是通过角色来操作的,当然也是可以单独通过对用户来操作权限。
role_action_catalog表3个属性来实现 动作——角色——目录的权限定义。
permission_catalog_info表实现 动作——用户——目录的权限定义。
具体数据约束看数据库整体视图。
到这里一个简单的细分到角色和用户的权限数据库就完成了。