標籤:管理員 images alt 使用者表 多對多 efault pass 文章 des
網站後台中許可權模組非常普遍,所以掌握3權分立十分必要
3權分立表有 使用者表,角色表,許可權表,對應關係如下
使用者有著“讀者”,“作者”和“管理員”角色,角色有不同許可權,如發布文章,審核文章,查看文章等
我們這裡設定使用者和角色是一對一關聯性,即一個使用者只有一個角色;角色和使用者的關係是一對多關聯性,一個角色對應著多個使用者
角色和許可權的關係是多對多關係。即一個角色有著多種許可權,同樣,一個許可權可以分給不同角色。
對應資料庫建表語句如下:
使用者表:
Create TableCREATE TABLE `orm_user` ( `i_id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(60) NOT NULL, `user_pass` varchar(60) NOT NULL, PRIMARY KEY (`i_id`)) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
角色表
Create TableCREATE TABLE `orm_role` ( `i_id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘許可權表‘, `s_name` varchar(20) NOT NULL, `s_description` varchar(60) DEFAULT NULL, PRIMARY KEY (`i_id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
許可權表
Create TableCREATE TABLE `orm_permission` ( `i_id` int(11) NOT NULL AUTO_INCREMENT, `s_name` varchar(20) NOT NULL, `s_description` varchar(60) DEFAULT NULL, PRIMARY KEY (`i_id`)) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8
使用者角色表
Create TableCREATE TABLE `orm_user_role` ( `i_id` int(11) NOT NULL AUTO_INCREMENT, `i_user_id` int(11) NOT NULL, `i_role_id` int(11) NOT NULL, PRIMARY KEY (`i_id`)) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
角色許可權表
Create TableCREATE TABLE `orm_role_permission` ( `i_id` int(11) NOT NULL AUTO_INCREMENT, `i_role_id` int(11) NOT NULL, `i_permission_id` int(11) NOT NULL, PRIMARY KEY (`i_id`)) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8
插入相關資料
然後使用php操作資料庫連表查詢即可查詢到相關資料
MySQL設定3權分立