一,各个表格
1、用户表
CREATE TABLE `t_user` ( `id` varchar(40) NOT NULL, `username` varchar(20) NOT NULL, PRIMARY KEY (`id`) )
2、角色表
CREATE TABLE `t_role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) )
3、权限表
CREATE TABLE `t_permission` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) )
4、用户角色关系表
CREATE TABLE `user_role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` varchar(40) NOT NULL, `role_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_user_role_t_role_1` (`role_id`), KEY `fk_user_role_t_user_1` (`user_id`), CONSTRAINT `fk_user_role_t_role_1` FOREIGN KEY (`role_id`) REFERENCES `t_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_user_role_t_user_1` FOREIGN KEY (`user_id`) REFERENCES `t_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE )
5、角色权限关系表
CREATE TABLE `role_permission` ( `id` int(11) NOT NULL AUTO_INCREMENT, `role_id` int(11) NOT NULL, `permission_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_role_permission_t_permission_1` (`permission_id`), KEY `fk_role_permission_t_role_1` (`role_id`), CONSTRAINT `fk_role_permission_t_permission_1` FOREIGN KEY (`permission_id`) REFERENCES `t_permission` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_role_permission_t_role_1` FOREIGN KEY (`role_id`) REFERENCES `t_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE )
查询某用户的对应的角色
SELECT u.id,u.username,r.`name` role_name FROM t_user u,t_role r,user_role ur WHERE u.username LIKE 'a%' AND u.id=ur.user_id AND ur.role_id=r.id;
查询拥有某权限的角色
SELECT p.`name`,r.`name` FROM t_permission p,role_permission rp,t_role r WHERE p.`name`='小说发布' AND p.id=rp.permission_id AND rp.role_id=r.id;