shiro權限框架-(一)數據庫表設計

使用shiro作爲權限安全框架,主要用到的表就5個:
實體表:
用戶表

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(20) NOT NULL COMMENT '用戶id',
  `username` varchar(50) NOT NULL COMMENT '用戶名',
  `password` varchar(50) NOT NULL,
  `salt` varchar(128) DEFAULT NULL COMMENT '加密鹽值',
  `email` varchar(50) DEFAULT NULL COMMENT '郵箱',
  `phone` varchar(50) DEFAULT NULL COMMENT '聯繫方式',
  `sex` int(255) DEFAULT NULL COMMENT '年齡:1男2女',
  `age` int(3) DEFAULT NULL COMMENT '年齡',
  `status` int(1) NOT NULL COMMENT '用戶狀態:1有效; 2刪除',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  `update_time` datetime DEFAULT NULL COMMENT '更新時間',
  `last_login_time` datetime DEFAULT NULL COMMENT '最後登錄時間',
  PRIMARY KEY (`id`,`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;

角色表

CREATE TABLE `role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_id` varchar(20) NOT NULL COMMENT '角色id',
  `name` varchar(50) NOT NULL COMMENT '角色名稱',
  `description` varchar(255) DEFAULT NULL COMMENT '角色描述',
  `status` int(1) NOT NULL COMMENT '狀態:1有效;2刪除',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  `update_time` datetime DEFAULT NULL COMMENT '更新時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

權限表(菜單和按鈕)

CREATE TABLE `permission` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `permission_id` varchar(20) NOT NULL COMMENT '權限id',
  `name` varchar(100) NOT NULL COMMENT '權限名稱',
  `description` varchar(255) DEFAULT NULL COMMENT '權限描述',
  `url` varchar(255) DEFAULT NULL COMMENT '權限訪問路徑',
  `perms` varchar(255) DEFAULT NULL COMMENT '權限標識',
  `parent_id` int(11) DEFAULT NULL COMMENT '父級權限id',
  `type` int(1) DEFAULT NULL COMMENT '類型   0:目錄   1:菜單   2:按鈕',
  `order_num` int(3) DEFAULT '0' COMMENT '排序',
  `icon` varchar(50) DEFAULT NULL COMMENT '圖標',
  `status` int(1) NOT NULL COMMENT '狀態:1有效;2刪除',
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;

關係表:
用戶角色關係表

CREATE TABLE `user_role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(20) NOT NULL COMMENT '用戶id',
  `role_id` varchar(20) NOT NULL COMMENT '角色id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

角色權限關係表

CREATE TABLE `role_permission` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_id` varchar(20) NOT NULL COMMENT '角色id',
  `permission_id` varchar(20) NOT NULL COMMENT '權限id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=869 DEFAULT CHARSET=utf8;

這5張表是屬於比較全面的shiro權限管理表,可以把權限比較精細的分配給每個頁面,每個按鈕。
也可以通過這幾張表根據自己的業務邏輯進行修改調整,總之按照項目的實際業務來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章