PHP用户管理后台权限数据表怎么设计合理

作者:admin 发布时间:2020-02-27 19:25:02 浏览:948次
关于权限管理数据库需要用到多少张表这个问题,网上有的说是建立六张表,有的说建立五张表,其实大同小异,根据你自己设计的表字段。不过建立五张表:用户表,角色表,权限表(即后来的菜单表),用户角色表,权限角色表。是最容易让新人理解的。 PHP用户管理后台权限数据表怎么设计合理 我是建立了四张表。

用户表

(我把后面的用户角色表整合到一个用户表上了,所以少建一张表) db_adminuser | CREATE TABLE `db_adminuser` (   `a_id` tinyint(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',   `a_gid` tinyint(4) NOT NULL COMMENT '所属群组(关联群组表-db_admingroup)',   `a_account` varchar(30) NOT NULL COMMENT '管理员账号',   `a_password` varchar(32) NOT NULL COMMENT '登陆密码',   `a_department` varchar(30) DEFAULT NULL COMMENT '部门',   `a_username` varchar(20) NOT NULL COMMENT '管理员姓名',   `a_number` varchar(30) DEFAULT NULL COMMENT '工号',   `a_tel` varchar(20) DEFAULT NULL COMMENT '联系电话',   `a_logtime` int(11) NOT NULL COMMENT '最后登录时间',   `a_logip` varchar(25) NOT NULL COMMENT '最后登录IP',   `a_ispermit` enum('0','1') NOT NULL DEFAULT '0' COMMENT '是否禁止 0:未,1:禁止登陆',   `a_regtime` int(11) NOT NULL COMMENT '注册时间',   `shopid` int(11) DEFAULT '0' COMMENT '店铺ID',   `a_recly` enum('0','1') NOT NULL DEFAULT '0' COMMENT '是否回收 0代表没有回收 1代表回收',   PRIMARY KEY (`a_id`),   UNIQUE KEY `a_account` (`a_account`) ) ENGINE=MyISAM AUTO_INCREMENT=154 DEFAULT CHARSET=utf8 COMMENT='用户员表';

角色表:

db_admingroup | CREATE TABLE `db_admingroup` (   `g_id` tinyint(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',   `g_name` varchar(30) NOT NULL COMMENT '角色名称',   `g_description` varchar(50) NOT NULL COMMENT '角色描述',   `status` enum('1','0') NOT NULL DEFAULT '0' COMMENT '是否禁止 0:未,1:禁止登陆',   PRIMARY KEY (`g_id`) ) ENGINE=MyISAM AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COMMENT='角色表' ;

权限表

db_menu | CREATE TABLE `db_menu` (   `m_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',   `m_pid` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '父ID,为0为顶级分类',   `m_name` varchar(30) NOT NULL COMMENT '权限英文名字',   `m_url` varchar(100) NOT NULL COMMENT '权限URL',   `m_level` tinyint(3) NOT NULL DEFAULT '1' COMMENT '层次',   `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '是否显示(0:不显示,1:显示)',   `m_remark` varchar(32) DEFAULT NULL COMMENT '样式备注',   `m_title` varchar(32) DEFAULT NULL COMMENT '权限中文名字',   `m_sort` tinyint(2) DEFAULT NULL COMMENT '排序',   PRIMARY KEY (`m_id`) ) ENGINE=MyISAM AUTO_INCREMENT=494 DEFAULT CHARSET=utf8 COMMENT='权限表' ;

角色权限表

db_access | CREATE TABLE `db_access` (   `a_gid` int(10) NOT NULL DEFAULT '0' COMMENT '角色id',   `a_mid` int(10) NOT NULL DEFAULT '0' COMMENT '权限id',   `level` tinyint(2) DEFAULT NULL COMMENT '层次',   `module` varchar(32) DEFAULT NULL COMMENT '模块' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT '角色权限表'; 以上是我用到的表。

大体设计思路是。

1 创建角色,例如:管理员 2 创建用户  隶属于哪个组 3 添加权限 4 给角色分配权限 5 然后关联表 得到某个用户所具有的权限 注意:以上基本上部分先后顺序。

如需转载请保留本文出处: https://www.zhe94.com/613.html

上一篇:快速建站之前言:如何建立一个自己的网站
下一篇:MySQL单表达到千万数据时怎么进行分区操作