权限设计
数据表
CREATE TABLE `wy_auth_group` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `title` char(100) NOT NULL DEFAULT '', `status` tinyint(1) NOT NULL DEFAULT '1', `rules` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8; CREATE TABLE `wy_auth_group_access` ( `uid` mediumint(8) unsigned NOT NULL, `group_id` mediumint(8) unsigned NOT NULL, UNIQUE KEY `uid_group_id` (`uid`,`group_id`), KEY `uid` (`uid`), KEY `group_id` (`group_id`) ) ENGINE=MyISAM DEFAULT CHA CREATE TABLE `wy_auth_rule` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `name` char(80) NOT NULL DEFAULT '', `title` char(20) NOT NULL DEFAULT '', `type` tinyint(1) NOT NULL DEFAULT '1', `status` tinyint(1) NOT NULL DEFAULT '1', `condition` char(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=MyISAM AUTO_INCREMENT=117 DEFAULT CHARSET=utf8;
wy_auth_group 角色(组)表 id title 角色名称 status rules 角色组有哪些规则(,将规则表的id分隔 其实减一个一对多的表更好) wy_auth_group_access uid 用户id group_id 角色组id wy_auth_rule 规则表 id name Member/index 规则标志 title type status condition
权限表设计
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for tp_action_log -- ---------------------------- DROP TABLE IF EXISTS `tp_action_log`; CREATE TABLE `tp_action_log` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `user_id` int(10) NOT NULL DEFAULT '0' COMMENT '执行用户id', `action_ip` bigint(20) NOT NULL COMMENT '执行行为者ip', `log` longtext NOT NULL COMMENT '日志备注', `log_url` varchar(255) NOT NULL COMMENT '执行的URL', `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '执行行为的时间', `username` varchar(255) NOT NULL COMMENT '执行者', `title` varchar(255) NOT NULL COMMENT '标题', PRIMARY KEY (`id`), KEY `id` (`id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=110 DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='行为日志表'; -- ---------------------------- -- Table structure for tp_admin -- ---------------------------- DROP TABLE IF EXISTS `tp_admin`; CREATE TABLE `tp_admin` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理员自增ID', `user_name` varchar(255) DEFAULT NULL COMMENT '用户名', `user_password` varchar(255) DEFAULT NULL COMMENT '管理员的密码', `user_nicename` varchar(255) DEFAULT NULL COMMENT '管理员的简称', `user_status` int(11) DEFAULT '1' COMMENT '用户状态 0:禁用; 1:正常 ;', `user_email` varchar(255) DEFAULT '' COMMENT '邮箱', `last_login_ip` varchar(16) DEFAULT NULL COMMENT '最后登录ip', `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间', `create_time` datetime DEFAULT NULL COMMENT '注册时间', `role` varchar(255) DEFAULT NULL COMMENT '角色ID', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COMMENT='后台管理员表'; -- ---------------------------- -- Table structure for tp_auth_access -- ---------------------------- DROP TABLE IF EXISTS `tp_auth_access`; CREATE TABLE `tp_auth_access` ( `role_id` mediumint(8) unsigned NOT NULL COMMENT '角色', `rule_name` varchar(255) NOT NULL COMMENT '规则唯一英文标识,全小写', `type` varchar(30) DEFAULT NULL COMMENT '权限规则分类,请加应用前缀,如admin_', `menu_id` int(11) DEFAULT NULL COMMENT '后台菜单ID', KEY `role_id` (`role_id`), KEY `rule_name` (`rule_name`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限授权表'; -- ---------------------------- -- Table structure for tp_auth_role -- ---------------------------- DROP TABLE IF EXISTS `tp_auth_role`; CREATE TABLE `tp_auth_role` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL COMMENT '角色名称', `pid` smallint(6) DEFAULT '0' COMMENT '父角色ID', `status` tinyint(1) unsigned DEFAULT NULL COMMENT '状态', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间', `listorder` int(3) NOT NULL DEFAULT '0' COMMENT '排序字段', PRIMARY KEY (`id`), KEY `parentId` (`pid`), KEY `status` (`status`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='角色表'; -- ---------------------------- -- Table structure for tp_auth_role_user -- ---------------------------- DROP TABLE IF EXISTS `tp_auth_role_user`; CREATE TABLE `tp_auth_role_user` ( `role_id` int(11) unsigned DEFAULT '0' COMMENT '角色 id', `user_id` int(11) DEFAULT '0' COMMENT '用户id', KEY `group_id` (`role_id`), KEY `user_id` (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户角色对应表'; -- ---------------------------- -- Table structure for tp_auth_rule -- ---------------------------- DROP TABLE IF EXISTS `tp_auth_rule`; CREATE TABLE `tp_auth_rule` ( `menu_id` int(11) NOT NULL COMMENT '后台菜单 ID', `module` varchar(20) NOT NULL COMMENT '规则所属module', `type` varchar(30) NOT NULL DEFAULT '1' COMMENT '权限规则分类,请加应用前缀,如admin_', `name` varchar(255) NOT NULL DEFAULT '' COMMENT '规则唯一英文标识,全小写', `url_param` varchar(255) DEFAULT NULL COMMENT '额外url参数', `title` varchar(20) NOT NULL DEFAULT '' COMMENT '规则中文描述', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否有效(0:无效,1:有效)', `rule_param` varchar(300) NOT NULL DEFAULT '' COMMENT '规则附加条件', `nav_id` int(11) DEFAULT '0' COMMENT 'nav id', PRIMARY KEY (`menu_id`), KEY `module` (`module`,`status`,`type`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='权限规则表'; -- ---------------------------- -- Table structure for tp_menu -- ---------------------------- DROP TABLE IF EXISTS `tp_menu`; CREATE TABLE `tp_menu` ( `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `parent_id` smallint(6) unsigned NOT NULL DEFAULT '0' COMMENT '父级ID', `app` char(20) NOT NULL COMMENT '应用名称app', `model` char(20) NOT NULL COMMENT '控制器', `action` char(20) NOT NULL COMMENT '操作名称', `url_param` char(50) NOT NULL COMMENT 'url参数', `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '菜单类型 1:权限认证+菜单;0:只作为菜单', `status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态,1显示,0不显示', `name` varchar(50) NOT NULL COMMENT '菜单名称', `icon` varchar(50) NOT NULL COMMENT '菜单图标', `remark` varchar(255) NOT NULL COMMENT '备注', `list_order` smallint(6) unsigned NOT NULL DEFAULT '0' COMMENT '排序ID', `rule_param` varchar(255) NOT NULL COMMENT '验证规则', `nav_id` int(11) DEFAULT '0' COMMENT 'nav ID ', `request` varchar(255) NOT NULL COMMENT '请求方式(日志生成)', `log_rule` varchar(255) NOT NULL COMMENT '日志规则', PRIMARY KEY (`id`), KEY `status` (`status`), KEY `model` (`model`), KEY `parent_id` (`parent_id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='后台菜单表';
admin
userid 用户自增id
tp_auth_role 角色表 id 角色自增id name 角色名称 pid 父角色ID status 状态 remark 备注 tp_auth_role_user 用户角色对应表 role_id 角色 id user_id 用户id tp_auth_access 权限授权表(连接菜单与角色) role_id 角色 rule_name 规则唯一英文标识全小写 type 权限规则分类,请加应用前缀如admin_ menu_id 后台菜单ID
(这两个是多对一关系 tp的)
tp_auth_rule 权限规则表
menu_id 后台菜单 ID(一个菜单对应一个规则)
module 规则所属module
type 权限规则分类,请加应用前缀如admin_
name 规则唯一英文标识全小写
url_param 额外url参数
title 规则中文描述
status 是否有效(0:无效1:有效)
rule_param 规则附加条件
nav_id nav id
tp_menu 后台菜单表 id 自增ID parent_id 父级ID app 应用名称app model 控制器 action 操作名称 url_param url参数 type 菜单类型 1:权限认证+菜单;0:只作为菜单 status 状态,1显示,0不显示 name 菜单名称 icon 菜单图标 remark 备注 list_order 排序ID rule_param 验证规则 nav_id int nav ID request 请求方式(日志生成) log_rule 日志规则