多租户和单租户权限设计的区别

近些年,随着技术和需求的发展,sass已经成为普遍现象,同时就出现了多租户概念,那么什么是多租户呢?

相较于传统企业的应用,只有一个企业在使用这一个系统,和别的企业无关,每次有一个企业采购一套之后,都需要单独为采购的企业布置一套应用,多租户的出现就改变了这一现象。

多租户模式就是在一个系统里面增加一个租户的概念,租户之间相互隔离,每一个租户可以认为就是一个企业,之后每有一个企业采购这套系统,开发商就只需要在系统里面增加一个相应的租户账号就好了,相对于之前的是不是方便多了?那么这一套是怎么实现的呢?

主要区别就在于权限管理,之前普通的单一租户应用的权限关系如下:

1.用户表:用于存储用户信息

2.角色表:用于存储角色信息

3.权限表:用于存储权限(也可以称为菜单表)

4.部门表:用于存储部门信息(搞简单点的话可以省略,不是必须)

5.岗位表:用于存储岗位信息(同上,也可以省略)

6.用户角色表:一个用户可以多个角色,一个角色可以多个用户(简称用户角色中间表)

7.用户岗位表:一个用户可以拥有多个岗位,一个岗位也可以多个人

8.角色权限表:一个角色可以拥有多个权限(就是拥有多个菜单)

9.角色部门表:一个角色可以在多个部门,一个部门也有多个角色

以上就是比较全面的单租户的表关系,当然可以再加一个用户组,用户组一般用于连锁型企业

那么现在出现了多租户架构,这时候很多小伙伴就很纳闷了,这应该怎么搞,经过几天的摸索,我算是大致的明白了其中的原理了:

1.用户表:用于存储用户信息

2.角色表:用于存储角色信息

3.权限表:用于存储权限

4.部门表:用于存储部门信息

5.岗位表:用于存储岗位信息

6.租户表:用于存储租户信息

7.套餐表:强烈建议增加,方便后期修改和扩展

8.租户用户表:一个用户可以在多个租户当中(参照企业微信),一个租户当中当然也不止一个用户了

9.租户角色表:一个租户有多个角色,多个租户角色可以雷同

10.租户部门表:同上

11.租户岗位表:同上

12.租户套餐表:方便后期拓展,例如某些基础功能免费使用,某些功能收费(看需要,可以直接在租户表中关联)

13.套餐权限表:一个套餐拥有许多权限,一个权限属于多个权限(多个权限放在一个字段)

14.角色权限表:一个角色可以拥有多个权限

15.角色部门表:一个角色可以在多个部门,一个部门也有多个角色

16.用户角色表:一个用户可以多个角色,一个角色可以多个用户

17.用户岗位表:一个用户可以拥有多个岗位,一个岗位也可以多个人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/144070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一起学docker系列之二深入理解Docker:基本概念、工作原理与架构

目录 前言1 Docker的基本概念2 Docker的基本组成3 docker工作原理4 docker架构5 Docker详细工作过程结语 前言 在当今的软件开发和部署中,Docker已经成为一种不可或缺的工具。它简化了应用程序的打包、交付和运行,同时提供了强大的隔离性和可移植性。本…

c语言中链栈的基本操作

链栈是一种特殊的链表,其基本操作包括: 初始化:创建一个空的链栈。 判断是否为空:检查链栈中是否有元素。 入栈:在链栈的栈顶添加一个元素。 出栈:删除链栈的栈顶元素,并返回该元素的值。 获…

Java学习笔记(七)——面向对象编程(中级)

一、IDEA (一)常用的快捷键 (二)模版/自定义模版 二、包 (一)包的命名 (二)常用的包 (三)如何引入(导入)包 (四&am…

win10 安装 node.js

要在你的系统上安装 Node.js,你可以按照以下步骤进行: 1. 打开 Node.js 官方网站:https://nodejs.org/ 2. 在首页上,你会看到两个版本的 Node.js 可供下载:LTS 版本和 Current 版本。LTS 版本是长期支持版本&#xff…

每日一题(LeetCode)----数组--长度最小的子数组的相关题(一)

每日一题(LeetCode)----数组–长度最小的子数组的相关题(一) 1.题目(904. 水果成篮) 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的…

「Verilog学习笔记」用优先编码器①实现键盘编码电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 用此编码器实现键盘的编码电路。 注意:编码器的输出是低电平有效,而键盘编码电路输出的是正常的8421BCD码,是高电平有效。因此将编…

ElasticSearch 安装(单机版本)

文章目录 ElasticSearch 安装(单机版本)环境配置下载安装包调整系统参数安装启动并验证 ElasticSearch 安装(单机版本) 此文档演示 ElasticSearch 的单机版本在 CentOS 7 环境下的安装方式以及相关的配置。 环境配置 Linux 主机一…

反向传播详解BP

误差反向传播(Back-propagation, BP)算法的出现是神经网络发展的重大突破,也是现在众多深度学习训练方法的基础。该方法会计算神经网络中损失函数对各参数的梯度,配合优化方法更新参数,降低损失函数。 BP本来只指损失…

OpenAI暂停ChatGPT Plus新用户注册;迷宫与图神经网络

🦉 AI新闻 🚀 OpenAI暂停ChatGPT Plus新用户注册,考虑用户体验 摘要:OpenAI决定暂停ChatGPT Plus新用户注册,以应对开发日后使用量激增带来的压力,确保每个人都能享受良好的体验。根据调查机构Writerbudd…

下载huggingface预训练模型到本地并调用

写在前面 在大模型横行的时代,无法在服务器上连接外网的研究僧真的是太苦逼了,每次想尝试类似于CLIP,BLIP之类的大模型都会得到“requests.exceptions.ConnectionError: (MaxRetryError("HTTPSConnectionPool(host‘huggingface.co’, …

LeetCode-2760. 最长奇偶子数组-滑动窗口暴力

Problem: 2760. 最长奇偶子数组 每日一题。实习第10天记录。 文章目录 思路Code 思路 注意用条件找r。 Code class Solution {public int longestAlternatingSubarray(int[] nums, int threshold) {int len nums.length;int l, r;int res 0;for (l 0; l < len; l) {// 定…

Datawhale智能汽车AI挑战赛

1.赛题解析 赛题地址&#xff1a;https://tianchi.aliyun.com/competition/entrance/532155 任务&#xff1a; 输入&#xff1a;元宇宙仿真平台生成的前视摄像头虚拟视频数据&#xff08;8-10秒左右&#xff09;&#xff1b;输出&#xff1a;对视频中的信息进行综合理解&…

【解决方案】危化品厂区安防系统EasyCVR+AI智能监控

危化品属于危险、易燃易爆、易中毒行类&#xff0c;一旦在生产运输过程中发生泄漏后果不堪想象&#xff0c;所以危化品的生产储存更需要严密、精细的监控&#xff0c;来保障危化品的安全。EasyCVRTSINGSEE青犀AI智能分析网关搭建的危化品智能监控方案就能很好的为危化品监管保驾…

基于STC12C5A60S2系列1T 8051单片机的数模芯片DAC0832实现数模转换应用

基于STC12C5A60S2系列1T 8051单片的数模芯片DAC0832实现数模转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍数模芯片DAC0832介绍通过按键调节数模芯片DAC0832…

微信小程序微信用户授权登录怎么在小程序上和钉钉相关联

要在微信小程序上实现微信用户授权登录并与钉钉相关联&#xff0c;你需要执行以下步骤&#xff1a; 钉钉开放平台注册应用&#xff1a;在钉钉开放平台上注册一个应用&#xff0c;获取到相应的AppID和AppSecret。 微信小程序授权登录&#xff1a;在微信小程序中使用wx.login接口…

WPF下实现拖动任意地方都可以拖动窗口

首先在xaml中添加事件 <Window PreviewMouseLeftButtonDown"Window_PreviewMouseLeftButtonDown"PreviewMouseMove"Window_PreviewMouseMove"PreviewMouseLeftButtonUp"Window_PreviewMouseLeftButtonUp"/>然后脚本输入 Point _pressedP…

【Spring进阶系列丨第二篇】Spring中的两大核心技术IoC(控制反转)与DI(依赖注入)

前言 我们都知道Spring 框架主要的优势是在 简化开发 和 框架整合 上&#xff0c;至于如何实现就是我们要学习Spring 框架的主要内容&#xff0c;今天我们就来一起学习Spring中的两大核心技术IoC&#xff08;控制反转&#xff09;与DI&#xff08;依赖注入&#xff09;。 文章目…

【数据结构】别跟我讲你不会冒泡排序

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

【6】Spring Boot 3 集成组件:knift4j+springdoc+swagger3

目录 【6】Spring Boot 3 集成组件&#xff1a;knift4jspringdocswagger3OpenApi规范SpringFox Swagger3SpringFox工具&#xff08;不推荐&#xff09; Springdoc&#xff08;推荐&#xff09;从SpringFox迁移引入依赖配置jAVA Config 配置扩展配置&#xff1a;spring securit…

NumLevels

NumLevels&#xff1a;输入参数&#xff0c;最大的金字塔层数。默认auto&#xff0c;范围【0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, auto】。 AngleStart&#xff1a;输入参数&#xff0c;输入匹配时的起始角度。默认-0.39&#xff0c;建议值【 -3.14, -1.57, -0.79, -0.39, -0.20,…