后台管理用户权限数据库设计
来自棱镜学院-在线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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。