zoukankan      html  css  js  c++  java
  • RBAC

    一、RBAC介绍

    https://www.jb51.net/article/121510.htm

    https://www.jb51.net/article/121512.htm

    二、建模

     三、SQL

    CREATE TABLE `user` (
    
    `id ` int UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `username` varchar(30) NOT NULL COMMENT '用户名',
    
    `password` varchar(50) NOT NULL,
    
    `mobile` varchar(11) NOT NULL COMMENT '手机号',
    
    `email` varchar(255) NOT NULL COMMENT '邮箱',
    
    `status` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户状态 0-未激活 1-正常 2-已停用',
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id `) ,
    
    UNIQUE INDEX (`username` ASC),
    
    UNIQUE INDEX (`mobile` ASC)
    
    )
    
    COMMENT = '系统-用户表';
    
    
    
    CREATE TABLE `role` (
    
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `role_name` varchar(255) NOT NULL COMMENT '角色名',
    
    `role_type` enum('system','custom') NOT NULL DEFAULT 'custom' COMMENT '角色类型',
    
    `role_desc` varchar(0) NOT NULL COMMENT '角色描述',
    
    `status` tinyint(255) UNSIGNED NOT NULL DEFAULT 1 COMMENT '角色状态 0-已停用 1-使用中',
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id`) 
    
    )
    
    COMMENT = '系统-角色表';
    
    
    
    CREATE TABLE `user_role` (
    
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `uid` int(11) NOT NULL,
    
    `role_id` int NOT NULL,
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id`) ,
    
    UNIQUE INDEX `user_role` (`uid` ASC, `role_id` ASC)
    
    )
    
    COMMENT = '系统-用户角色关联表';
    
    
    
    CREATE TABLE `role_resource` (
    
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `role_id` int(11) NOT NULL,
    
    `resource_type` enum('menu','element') NOT NULL,
    
    `resource_id` int(11) NULL,
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id`) ,
    
    UNIQUE INDEX `role_resource` (`role_id` ASC, `resource_type` ASC, `resource_id` ASC)
    
    )
    
    COMMENT = '系统-角色资源表';
    
    
    
    CREATE TABLE `menu` (
    
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `parent_id` int NOT NULL DEFAULT 0 COMMENT '父菜单id',
    
    `menu_name` varchar(30) NOT NULL COMMENT '菜单名称',
    
    `menu_icon` varchar(50) NOT NULL COMMENT '菜单图标',
    
    `menu_href` varchar(80) NOT NULL COMMENT '菜单跳转链接',
    
    `menu_desc` varchar(255) NOT NULL COMMENT '菜单描述',
    
    `sort_order` int NOT NULL COMMENT '排序 越小越前',
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id`) 
    
    )
    
    COMMENT = '系统-菜单表';
    
    
    
    CREATE TABLE `element` (
    
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `element_name` varchar(30) NOT NULL,
    
    `element_type` enum('page','block') NOT NULL DEFAULT 'page' COMMENT '元素类型',
    
    `element_code` varchar(50) NOT NULL COMMENT '页面元素编号(路由)',
    
    `element_desc` varchar(255) NOT NULL COMMENT '元素描述',
    
    `sort_order` int NOT NULL DEFAULT 0 COMMENT '排序',
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id`) ,
    
    INDEX ()
    
    )
    
    COMMENT = '系统-元素表';
    
    
    
    CREATE TABLE `api` (
    
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `api_name` varchar(30) NOT NULL COMMENT '接口名称',
    
    `api_route` varchar(50) NOT NULL COMMENT '接口路由',
    
    `api_method` enum('post','get','put','delete') NOT NULL COMMENT '接口请求方法',
    
    `api_desc` varchar(255) NOT NULL COMMENT '接口描述',
    
    `sort_order` int NOT NULL DEFAULT 0,
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id`) 
    
    )
    
    COMMENT = '系统-接口表';
    
    
    
    CREATE TABLE `element_api` (
    
    `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
    
    `element_id` int(11) NOT NULL,
    
    `api_id` int(11) NOT NULL,
    
    `created_at` int NOT NULL DEFAULT 0,
    
    `updated_at` int NOT NULL DEFAULT 0,
    
    PRIMARY KEY (`id`) ,
    
    UNIQUE INDEX `element_api` (`element_id` ASC, `api_id` ASC)
    
    )
    
    COMMENT = '系统-元素接口关联表';

     四、实操

    前台:

    基于 vue + elementui 

    地址:github  dev分支

    后台:

    基于 thinkphp5.1

    地址: github  master分支

  • 相关阅读:
    QuotationTools自动化脚本的部署和使用
    QuotationTool能做什么.
    【计算机原理】CPU部分.md
    【计算机原理】程序执行过程
    【大话存储II】学习笔记(18章),数据前处理和后处理
    【大话存储】学习笔记(17章),数据容灾
    【大话存储】学习笔记(20章),云存储
    【大话存储】学习笔记(16章),数据保护和备份技术
    【大话存储II】学习笔记(15章),NoSQL
    数据库(七),读写分离到CQRS
  • 原文地址:https://www.cnblogs.com/cshaptx4869/p/12461972.html
Copyright © 2011-2022 走看看