国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

017-從零搭建微服務-系統(tǒng)服務(四)

這篇具有很好參考價值的文章主要介紹了017-從零搭建微服務-系統(tǒng)服務(四)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

寫在最前

如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。

源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning

源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui

文檔地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis

數(shù)據(jù)庫權(quán)限模型設計

設計思路:通過用戶關(guān)聯(lián)角色(一個用戶可關(guān)聯(lián)多個角色),角色關(guān)聯(lián)菜單(一個角色可關(guān)聯(lián)多個菜單),完成用戶權(quán)限控制。

  • 用戶 1 => 角色 N
  • 角色 1 => 菜單(權(quán)限點)N
sys_user           用戶表
sys_user_role      用戶角色關(guān)系表
sys_role           角色表
sys_role_menu      角色菜單關(guān)系表
sys_menu           菜單表

017-從零搭建微服務-系統(tǒng)服務(四),MingYue微服務,微服務,架構(gòu),云原生

用戶表

用戶表在之前的開發(fā)中已經(jīng)設計并使用了

CREATE TABLE `sys_user` (
    `user_id`      BIGINT(20)       NOT NULL        COMMENT '用戶ID',
    `username`     VARCHAR(64)      NOT NULL        COMMENT '用戶名',
    `nickname`     VARCHAR(64)      NOT NULL        COMMENT '用戶昵稱',
    `sex`          CHAR(1)          DEFAULT '0'     COMMENT '用戶性別(0男 1女 2未知)',
    `password`     VARCHAR(255)     NOT NULL        COMMENT '密碼',
    `phone`        VARCHAR(32)      DEFAULT NULL    COMMENT '手機號碼',
    `email`        VARCHAR(32)      DEFAULT NULL    COMMENT '用戶郵箱',
    `avatar`       VARCHAR(255)     DEFAULT NULL    COMMENT '頭像',
    `status`       CHAR(1)          DEFAULT '0'     COMMENT '帳號狀態(tài)(0正常 1停用)',
    `is_deleted`   CHAR(1)          DEFAULT '0'     COMMENT '刪除標志(0正常,1刪除)',
    `create_time`  DATETIME         DEFAULT NULL    COMMENT '創(chuàng)建時間',
    `update_time`  DATETIME         DEFAULT NULL    COMMENT '修改時間',
    `create_by`    VARCHAR(64)      DEFAULT NULL    COMMENT '創(chuàng)建者',
    `update_by`    VARCHAR(64)      DEFAULT NULL    COMMENT '更新人',
    PRIMARY KEY (`user_id`),
    KEY `user_idx1_username` (`username`)
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT = '用戶表';


BEGIN;
INSERT INTO `sys_user` VALUES (1, 'mingyue', '明月', '0', '123456', '13288888888', NULL, NULL, '0', '0', '2023-07-19 17:06:22', '2023-07-19 17:06:25', 'mingyue', 'mingyue');
INSERT INTO `sys_user` VALUES (2, 'strive', 'Strive', '0', '123456', '15388888888', NULL, NULL, '0', '0', '2023-07-19 17:06:22', '2023-07-19 17:06:25', 'mingyue', 'mingyue');
COMMIT;

角色表

CREATE TABLE sys_role (
    `role_id`       BIGINT(20)      NOT NULL         COMMENT '角色ID',
    `role_name`     VARCHAR(64)     NOT NULL         COMMENT '角色名稱',
    `role_code`     VARCHAR(64)     NOT NULL         COMMENT '角色代碼',
    `order_num`     INT(4)          NOT NULL         COMMENT '顯示順序',
    `status`        CHAR(1)         DEFAULT '0'      COMMENT '角色狀態(tài)(0正常 1停用)',
    `role_desc`     VARCHAR(255)    DEFAULT NULL     COMMENT '角色描述',
    `is_deleted`    CHAR(1)         DEFAULT '0'      COMMENT '刪除標志(0正常,1刪除)',
    `create_time`   DATETIME        DEFAULT NULL     COMMENT '創(chuàng)建時間',
    `update_time`   DATETIME        DEFAULT NULL     COMMENT '修改時間',
    `create_by`     VARCHAR(64)     DEFAULT NULL     COMMENT '創(chuàng)建者',
    `update_by`     VARCHAR(64)     DEFAULT NULL     COMMENT '更新人',
    PRIMARY KEY (`role_id`),
    UNIQUE KEY `role_idx1_role_code` (`role_code`)
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT = '角色表';


BEGIN;
INSERT INTO `sys_role` VALUES (1, '超級管理員', 'admin', 0, '0', NULL, '0', '2023-07-19 17:06:22', '2023-07-19 17:06:25', 'mingyue', 'mingyue');
INSERT INTO `sys_role` VALUES (2, '普通用戶', 'common', 1, '0', NULL, '0', '2023-07-19 17:06:22', '2023-07-19 17:06:25', 'mingyue', 'mingyue');
COMMIT;

用戶角色關(guān)系表

管理用戶與角色之間關(guān)系,用戶 1 => 角色 N

DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE sys_user_role (
    `user_id`   BIGINT(20) NOT NULL COMMENT '用戶ID',
    `role_id`   BIGINT(20) NOT NULL COMMENT '角色ID',
    PRIMARY KEY (`user_id`, `role_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT = '用戶和角色關(guān)聯(lián)表';

BEGIN;
INSERT INTO `sys_user_role` VALUES (1, 1);
INSERT INTO `sys_user_role` VALUES (2, 2);
COMMIT;

菜單表

菜單表的設計參考前端項目 JSON 數(shù)據(jù)設計

{
  // 菜單路徑,用于跳轉(zhuǎn)
  path: '/home',
  // 菜單 name,用于界面 keep-alive 路由緩存。
  // 此 name 需要與 component 組件中的 name 值相同(唯一)
  name: 'home',
  // 組件路徑
  component: () => import('/@/views/home/index.vue'),
  // 菜單重定向路徑
  redirect: '/home',
  // 附加自定義數(shù)據(jù)
  meta: {
    // 菜單標題(國際化寫法)
    title: 'message.router.home',
    // 菜單外鏈鏈接
    // 開啟外鏈條件,`1、isLink: true 2、鏈接地址不為空(meta.isLink) 3、isIframe: false`
    isLink: '',
    // 菜單是否隱藏(菜單不顯示在界面,但可以進行跳轉(zhuǎn))
    isHide: false,
    // 菜單是否緩存
    isKeepAlive: true,
    // 菜單是否固定(固定在 tagsView 中,不可進行關(guān)閉),右鍵菜單無 `關(guān)閉` 項
    isAffix: true,
    // 是否內(nèi)嵌
    // 開啟條件,`1、isIframe: true 2、鏈接地址不為空(meta.isLink)`
    isIframe: false,
    // 當前路由權(quán)限標識,取角色管理??刂坡酚娠@示、隱藏。超級管理員:admin 普通角色:common
    // 之前 auth 取用戶(角色下有多個用戶)
    roles: ['admin', 'common'],
    // 菜單圖標
    icon: 'iconfont icon-shouye',
    // 自行再添加
    ...
  },
}
CREATE TABLE `sys_menu` (
    `menu_id`        BIGINT(20)    NOT NULL                COMMENT '菜單名稱',
    `menu_name`      VARCHAR(32)   NOT NULL                COMMENT '菜單名稱',
    `parent_id`      BIGINT(20)    DEFAULT NULL            COMMENT '父菜單ID',
    `permission`     VARCHAR(32)   DEFAULT NULL            COMMENT '權(quán)限標識',
    `type`           CHAR(1)       DEFAULT NULL            COMMENT '菜單類型(0菜單 1按鈕)',
    `order_num`      INT(4)        NOT NULL DEFAULT '0'    COMMENT '排序值',
    `path`           VARCHAR(128)  DEFAULT NULL            COMMENT '路由地址(前端URL)',
    `component`      VARCHAR(255)  DEFAULT null            COMMENT '組件路徑',
    `redirect`       VARCHAR(255)  DEFAULT null            COMMENT '重定向路徑',
    `is_link`        CHAR(1)       DEFAULT '0'             COMMENT '是否為外鏈(0否 1是)',
    `is_hide`        CHAR(1)       DEFAULT '0'             COMMENT '是否隱藏(0否 1是)',
    `is_keep_alive`  CHAR(1)       DEFAULT '0'             COMMENT '是否開啟緩存(0否 1是)',
    `is_affix`       CHAR(1)       DEFAULT '0'             COMMENT '是否固定(0否 1是)',
    `is_iframe`      CHAR(1)       DEFAULT '0'             COMMENT '是否內(nèi)嵌(0否 1是)',
    `status`         CHAR(1)       DEFAULT '0'             COMMENT '菜單狀態(tài)(0正常 1停用)',
    `icon`           VARCHAR(64)   DEFAULT NULL            COMMENT '圖標',
    `is_deleted`     CHAR(1)       DEFAULT '0'             COMMENT '刪除標志(0正常,1刪除)',
    `create_time`    DATETIME      DEFAULT NULL            COMMENT '創(chuàng)建時間',
    `update_time`    DATETIME      DEFAULT NULL            COMMENT '修改時間',
    `create_by`      VARCHAR(64)   DEFAULT NULL            COMMENT '創(chuàng)建者',
    `update_by`      VARCHAR(64)   DEFAULT NULL            COMMENT '更新人',
    PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='菜單權(quán)限表';


BEGIN;
INSERT INTO `sys_menu` VALUES (1000, '系統(tǒng)管理', -1, NULL, '0', 0, '/system', NULL, NULL, '0', '0', '0', '0', '0', '0', 'iconfont icon-xitongshezhi', '0', '2023-07-20 17:00:49', '2023-07-20 17:01:09', 'mingyue', 'mingyue');
INSERT INTO `sys_menu` VALUES (1100, '用戶管理', 1000, NULL, '0', 0, '/system/user', NULL, NULL, '0', '0', '0', '0', '0', '0', 'iconfont icon-icon-', '0', '2023-07-20 17:00:49', '2023-07-20 17:01:09', 'mingyue', 'mingyue');
INSERT INTO `sys_menu` VALUES (1200, '角色管理', 1000, NULL, '0', 1, '/system/role', NULL, NULL, '0', '0', '0', '0', '0', '0', 'ele-ColdDrink', '0', '2023-07-20 17:00:49', '2023-07-20 17:01:09', 'mingyue', 'mingyue');
INSERT INTO `sys_menu` VALUES (1300, '菜單管理', 1000, NULL, '0', 2, '/system/menu', NULL, NULL, '0', '0', '0', '0', '0', '0', 'iconfont icon-caidan', '0', '2023-07-20 17:00:49', '2023-07-20 17:01:09', 'mingyue', 'mingyue');
COMMIT;

角色菜單關(guān)聯(lián)表

管理角色與菜單之間關(guān)系,角色 1 => 菜單(權(quán)限點)N

DROP TABLE IF EXISTS `sys_role_menu`;
CREATE TABLE sys_role_menu (
    `role_id`   BIGINT(20) NOT NULL COMMENT '角色ID',
    `menu_id`   BIGINT(20) NOT NULL COMMENT '菜單ID',
    PRIMARY KEY (`role_id`, `menu_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT = '角色和菜單關(guān)聯(lián)表';

BEGIN;
INSERT INTO `sys_role_menu` VALUES (1, 1000);
INSERT INTO `sys_role_menu` VALUES (1, 1100);
INSERT INTO `sys_role_menu` VALUES (1, 1200);
INSERT INTO `sys_role_menu` VALUES (1, 1300);
INSERT INTO `sys_role_menu` VALUES (2, 1000);
INSERT INTO `sys_role_menu` VALUES (2, 1100);
COMMIT;

編寫關(guān)系 SQL

用戶與角色

SELECT su.user_id, su.username, su.nickname,sur.role_id,sr.role_name FROM sys_user su
LEFT JOIN sys_user_role sur ON sur.user_id = su.user_id
LEFT JOIN sys_role sr ON sr.role_id = sur.role_id

角色與菜單

SELECT sr.role_id, sr.role_name, sm.menu_id, sm.menu_name FROM sys_role sr
LEFT JOIN sys_role_menu srm ON srm.role_id = sr.role_id
LEFT JOIN sys_menu sm ON sm.menu_id = srm.menu_id

用戶與菜單

SELECT su.user_id, su.username, su.nickname,sur.role_id,sr.role_name, sm.menu_id, sm.menu_name FROM sys_user su
LEFT JOIN sys_user_role sur ON sur.user_id = su.user_id
LEFT JOIN sys_role sr ON sr.role_id = sur.role_id
LEFT JOIN sys_role_menu srm ON srm.role_id = sr.role_id
LEFT JOIN sys_menu sm ON sm.menu_id = srm.menu_id

小結(jié)

數(shù)據(jù)庫權(quán)限模型設計到此就 OK 啦~

接下來把基礎代碼生成一下,對外提供相應接口文章來源地址http://www.zghlxwxcb.cn/news/detail-602392.html

到了這里,關(guān)于017-從零搭建微服務-系統(tǒng)服務(四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 024-從零搭建微服務-系統(tǒng)服務(六)

    如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。 源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning 源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui 文檔地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis mingyue-ui 目前與后端交

    2024年02月09日
    瀏覽(25)
  • 從零開始:如何使用Docker構(gòu)建微服務架構(gòu)

    使用 Docker 構(gòu)建微服務架構(gòu)是一種流行的方法,因為 Docker 提供了輕量級的容器化技術(shù),使得每個微服務可以在隔離的環(huán)境中獨立運行。從零開始構(gòu)建這樣的架構(gòu)涉及到多個步驟,包括理解微服務架構(gòu)的基本概念、安裝 Docker、創(chuàng)建 Docker 容器和鏡像、配置網(wǎng)絡,以及部署和管理

    2024年04月14日
    瀏覽(28)
  • 深入探索JavaEE單體架構(gòu)、微服務架構(gòu)與云原生架構(gòu)

    鏈接: https://pan.baidu.com/s/1xSI1ofwYXfqOchfwszCZnA?pwd=4s99 提取碼: 4s99 復制這段內(nèi)容后打開百度網(wǎng)盤手機App,操作更方便哦 --來自百度網(wǎng)盤超級會員v4的分享 ??【00】模塊零:開營直播:精彩直播課程帶你全面了解最新技術(shù)動態(tài),為學習之旅打下良好基礎!???? ??【01】模塊一:

    2024年02月12日
    瀏覽(20)
  • 微服務架構(gòu)2.0--云原生時代

    微服務架構(gòu)2.0--云原生時代

    云原生(Cloud Native)是一種關(guān)注于在云環(huán)境中構(gòu)建、部署和管理應用程序的方法和理念。云原生應用能夠最大程度地利用 云計算基礎設施的優(yōu)勢,如彈性、自動化、可伸縮性和高可用性 。這個概念涵蓋了許多方面,包括 架構(gòu)、開發(fā)、部署、運維 和團隊文化等 容器化: 將應

    2024年02月11日
    瀏覽(23)
  • 淺析云原生時代的服務架構(gòu)演進

    摘要: 相比于傳統(tǒng)的微服務架構(gòu),云原生和 serverless 技術(shù)更加靈活、高效,能夠更好地滿足用戶的需求。 本文分享自華為云社區(qū)《《鳳凰架構(gòu)》學習和思考——云原生時代的服務架構(gòu)演進史》,作者:breakDawn。 隨著云原生的概念越來越火,服務的架構(gòu)應該如何發(fā)展和演進,

    2023年04月10日
    瀏覽(23)
  • 028-從零搭建微服務-搜索服務(二)

    如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。 源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning 源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui 文檔地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis 更多用法可以參考 E

    2024年02月07日
    瀏覽(15)
  • 023-從零搭建微服務-推送服務(三)

    023-從零搭建微服務-推送服務(三)

    原【短信服務】更名【推送服務】 如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。 源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning 源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui 文檔地址:https://gitee.com/csps/mingyue-springc

    2024年02月10日
    瀏覽(20)
  • 027-從零搭建微服務-搜索服務(一)

    027-從零搭建微服務-搜索服務(一)

    如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。 源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning 源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui 文檔地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis Docker 安裝 ELK 7.17.2 h

    2024年02月07日
    瀏覽(13)
  • 022-從零搭建微服務-短信服務(二)

    022-從零搭建微服務-短信服務(二)

    如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。 源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning 源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui 文檔地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis 需要注冊一個阿里云賬

    2024年02月11日
    瀏覽(11)
  • 021-從零搭建微服務-短信服務(一)

    021-從零搭建微服務-短信服務(一)

    如果這個項目讓你有所收獲,記得 Star 關(guān)注哦,這對我是非常不錯的鼓勵與支持。 源碼地址(后端):https://gitee.com/csps/mingyue-springcloud-learning 源碼地址(前端):https://gitee.com/csps/mingyue-springcloud-ui 文檔地址:https://gitee.com/csps/mingyue-springcloud-learning/wikis 短信服務(Short Messa

    2024年02月11日
    瀏覽(46)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包