一般后台系統數據庫 用戶權限設計


參考:https://blog.csdn.net/sundawanglru/article/details/79639290

1、權限表設計

CREATE TABLE `admin_permission` (
  `permission_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號',
  `pid` int(10) DEFAULT NULL COMMENT '所屬上級',
  `name` varchar(20) DEFAULT NULL COMMENT '名稱',
  `type` tinyint(4) DEFAULT NULL COMMENT '類型(1:目錄,2:菜單,3:按鈕)',
  `permission_value` varchar(50) DEFAULT NULL COMMENT '權限值',
  `uri` varchar(100) DEFAULT NULL COMMENT '路徑',
  `icon` varchar(50) DEFAULT NULL COMMENT '圖標',
  `status` tinyint(4) DEFAULT NULL COMMENT '狀態(0:禁止,1:正常)',
  `ctime` datetime DEFAULT NULL COMMENT '創建時間',
  `orders` bigint(20) DEFAULT NULL COMMENT '排序',
  PRIMARY KEY (`permission_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='權限';

2、角色表設計

CREATE TABLE `admin_role` (
  `role_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號',
  `name` varchar(20) DEFAULT NULL COMMENT '角色名稱',
  `title` varchar(20) DEFAULT NULL COMMENT '角色標題',
  `description` varchar(1000) DEFAULT NULL COMMENT '角色描述',
  `ctime` datetime NOT NULL COMMENT '創建時間',
  `orders` bigint(20) NOT NULL COMMENT '排序',
  PRIMARY KEY (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色';

3、管理員表設計

CREATE TABLE `admin_user` (
  `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號',
  `username` varchar(20) NOT NULL COMMENT '帳號',
  `password` varchar(32) NOT NULL COMMENT '密碼MD5(密碼+鹽)',
  `salt` varchar(32) DEFAULT NULL COMMENT '',
  `realname` varchar(20) DEFAULT NULL COMMENT '姓名',
  `avatar` varchar(150) DEFAULT NULL COMMENT '頭像',
  `phone` varchar(20) DEFAULT NULL COMMENT '電話',
  `email` varchar(50) DEFAULT NULL COMMENT '郵箱',
  `sex` tinyint(4) DEFAULT NULL COMMENT '性別(1:男,2:女)',
  `locked` tinyint(4) DEFAULT NULL COMMENT '狀態(0:正常,1:鎖定)',
  `ctime` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='管理員用戶';

4、用戶角色關聯表

CREATE TABLE `admin_user_role` (
  `user_role_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號',
  `user_id` int(10) unsigned NOT NULL COMMENT '用戶編號',
  `role_id` int(10) DEFAULT NULL COMMENT '角色編號',
  PRIMARY KEY (`user_role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='用戶角色關聯表';

5、 角色權限關聯表

CREATE TABLE `admin_role_permission` (
  `role_permission_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號',
  `role_id` int(10) unsigned NOT NULL COMMENT '角色編號',
  `permission_id` int(10) unsigned NOT NULL COMMENT '權限編號',
  PRIMARY KEY (`role_permission_id`),
  KEY `FK_Reference_23` (`role_id`),
  CONSTRAINT `FK_Reference_23` FOREIGN KEY (`role_id`) REFERENCES `admin_role` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色權限關聯表';

6、操作日志表

CREATE TABLE `admin_log` (
  `log_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '編號',
  `description` varchar(100) DEFAULT NULL COMMENT '操作描述',
  `username` varchar(20) DEFAULT NULL COMMENT '操作用戶',
  `start_time` datetime DEFAULT NULL COMMENT '操作時間',
  `spend_time` datetime DEFAULT NULL COMMENT '消耗時間',
  `base_path` varchar(500) DEFAULT NULL COMMENT '根路徑',
  `uri` varchar(500) DEFAULT NULL COMMENT 'URI',
  `url` varchar(500) DEFAULT NULL COMMENT 'URL',
  `method` varchar(10) DEFAULT NULL COMMENT '請求類型',
  `parameter` mediumtext,
  `user_agent` varchar(500) DEFAULT NULL COMMENT '用戶標識',
  `ip` varchar(30) DEFAULT NULL COMMENT 'IP地址',
  `result` mediumtext,
  `permissions` varchar(100) DEFAULT NULL COMMENT '權限值',
  PRIMARY KEY (`log_id`),
  KEY `log_id` (`log_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志';

 

--------------------- 
作者:噠噠博客 
來源:CSDN 
原文:https://blog.csdn.net/sundawanglru/article/details/79639290 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM