后台管理用户权限数据库设计

来自棱镜学院-在线IT教育www.prismcollege.com

1.     创建基本表

创建User、Role和Module三张表,User中每一行对应一个用户信息,Role每一行保存一个角色信息,包括角色id及对应的name,Module中的每一行保存一个模块信息,包括模块id及对应的name。

创建三张表的sql语句(MySql环境)如下:

1)创建user表,表结构如下:

2)创建role表,表结构如下:

3)创建module表,表结构如下:

CREATE TABLE `of_user` (
  `USER_ID` varchar(100) ‘,
  `USERNAME` varchar(255),
  `PASSWORD` varchar(255),
  `NAME` varchar(255) ,
  `ROLE_ID` varchar(100) ,
  `NUMBER` varchar(100),
  PRIMARY KEY (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;


CREATE TABLE `of_role` (
  `ROLE_ID` varchar(50) ,
  `ROLE_NAME` varchar(100),
  PRIMARY KEY (`ROLE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



CREATE TABLE `of_menu` (
  `MENU_ID` int(11) NOT NULL,
  `MENU_NAME` varchar(254) ,
  `MENU_URL` varchar(254) ,
  `PARENT_ID` varchar(20) ,
  `MENU_ORDER` varchar(80),
  `MENU_ICON` varchar(30),
  PRIMARY KEY (`MENU_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `of_user_group` (
  `id` varchar(50) ,
  `user_id` varchar(50) ,
  `group_id` varchar(50) ,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.     插入初始数据

1)定义模块,假设有以下模块a.查询报表  b.账号管理 c.信息发布 d.注册用户列表 e.招聘信息列表几个模块,将各模块插入module表中。

插入后module内容如下:

2)定义角色,初始定义以下角色a.超级管理员 b.管理员 c.信息发布者 d.求职者等角色,插入后role内容如下:

3)定义用户,初始用户如下,liubei,zhugeliang,zhangfei,lvbu

插入后user内容如下

 

3.     创建关联表

1)创建user和role的关联表user_role,一个user对应一个或者多个role,一个role可以对应多个user,设liubei的角色为administrator,zhugeliang为admin和distributor,zhangfei为distributor,lvbu为jobseeker。用户zhugeliang和role之间是一对多关系,角色distributor和user之间是一对多关系。

创建后的user_role表结构如下:

内容如下,保存了用户和角色之间的映射关系:

2)创建role和module之间的关联映射表role_module,administrator可以查看journal_sheet模块,admin可以查看除journal_sheet的所有模块:info_distribute,account_manage,user_list,job_list,distributor可以查看info_distribute模块,jobseeker可以查看job_list模块。

创建后的role_module表结构如下:

内容如下,保存了role和module之间的映射关系

 CREATE TABLE `of_user_role` (
  `user_id` int(50),
  `role_id` int(50) ,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=urf-8;


CREATE TABLE `of_role_menu` (
  `role_id` int(50) ,
  `menu_id` int(50) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

至此,通过数据库完成了用户权限的设计。

更多学习 欢迎加QQ群交流:3686148499368614849368614849368614849

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。