• 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分支

  • 相关阅读:
    异常处理
    SPD各模块总结
    简易js调试
    深入理解:java类加载器
    java基础简介
    android四大组件(一)Activity
    网路编程(网站源码查看器)
    ListView
    SQL查询数据总结
    函数作用域中的this问题
  • 原文地址:https://www.cnblogs.com/cshaptx4869/p/12461972.html
Copyright © 2020-2023  润新知