登录
首页 >  数据库 >  MySQL

springboot + vue前后端分离后台管理系统(五) -- 后台权限表结构设计

来源:SegmentFault

时间:2023-02-24 18:15:07 163浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《springboot + vue前后端分离后台管理系统(五) -- 后台权限表结构设计》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

什么是RBAC

RBAC 是基于角色的访问控制(
CREATE TABLE `sys_user` (
  `id` varchar(32) NOT NULL,
  `username` varchar(32) NOT NULL COMMENT '用户名',
  `password` varchar(64) NOT NULL COMMENT '密码',
  `sex` char(1) DEFAULT NULL COMMENT '性别 0 女| 1 男',
  `locked` char(1) DEFAULT NULL COMMENT '是否锁住 0 否 | 1 是',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新者',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • sys_role表

CREATE TABLE `sys_role` (
  `id` varchar(32) NOT NULL COMMENT 'ID',
  `code` varchar(32) NOT NULL COMMENT '角色编码',
  `name` varchar(32) DEFAULT NULL COMMENT '角色名称',
  `forbidden` varchar(1) DEFAULT NULL COMMENT '是否禁用 0:正常 | 1:禁用',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色表';
  • sys_menu表

CREATE TABLE `sys_menu` (
  `id` varchar(32) NOT NULL COMMENT 'ID',
  `parent_id` varchar(32) DEFAULT '0' COMMENT '父级菜单ID',
  `code` varchar(32) NOT NULL COMMENT '菜单编码',
  `name` varchar(32) NOT NULL COMMENT '菜单名称',
  `type` char(1) DEFAULT NULL COMMENT '菜单类型 0:菜单 | 1:按钮(权限)',
  `permission` varchar(32) DEFAULT NULL COMMENT '权限标识',
  `icon` varchar(32) DEFAULT NULL COMMENT '图标',
  `path` varchar(32) DEFAULT NULL COMMENT '路由地址',
  `component` varchar(32) DEFAULT NULL COMMENT '组件路径',
  `sort` varchar(32) DEFAULT NULL COMMENT '排序',
  `forbidden` varchar(1) DEFAULT NULL COMMENT '是否禁用 0:正常 | 1:禁用',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单表';
  • sys_user_role表

CREATE TABLE `sys_user_role` (
  `id` varchar(32) NOT NULL COMMENT 'ID',
  `user_id` varchar(32) NOT NULL COMMENT '用户ID',
  `role_id` varchar(32) NOT NULL COMMENT '角色ID',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_role` (`user_id`,`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户角色关系表';
  • sys_role_menu表

CREATE TABLE `sys_role_menu` (
  `id` varchar(32) NOT NULL COMMENT 'ID',
  `role_id` varchar(32) NOT NULL COMMENT '角色ID',
  `menu_id` varchar(32) NOT NULL COMMENT '菜单ID',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_role_menu` (`role_id`,`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色菜单关系表';

再来一个代码生成配置表,后面的业务代码统一由这个表配置生成

  • sys_gen

CREATE TABLE `sys_gen` (
  `id` varchar(32) NOT NULL COMMENT 'ID',
  `table_name` varchar(32) NOT NULL COMMENT '表名',
  `table_prefix` varchar(32) DEFAULT NULL COMMENT '表名前缀 填写前缀,生成实体不包含前缀',
  `module` varchar(32) NOT NULL COMMENT '模块名称 模块名称用来分类',
  `description` varchar(32) DEFAULT NULL COMMENT '功能描述',
  `author` varchar(32) DEFAULT NULL COMMENT '作者',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='代码生成表 ';

理论要掌握,实操不能落!以上关于《springboot + vue前后端分离后台管理系统(五) -- 后台权限表结构设计》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>