惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
宝玉的分享
宝玉的分享
I
InfoQ
P
Privacy International News Feed
V
V2EX
IT之家
IT之家
S
SegmentFault 最新的问题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V2EX - 技术
V2EX - 技术
C
CERT Recently Published Vulnerability Notes
C
Check Point Blog
The Register - Security
The Register - Security
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
AWS News Blog
AWS News Blog
M
MIT News - Artificial intelligence
C
Cyber Attacks, Cyber Crime and Cyber Security
F
Fortinet All Blogs
B
Blog
N
Netflix TechBlog - Medium
B
Blog RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
T
Threatpost
Forbes - Security
Forbes - Security
U
Unit 42
A
Arctic Wolf
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recorded Future
Recorded Future
L
Lohrmann on Cybersecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
月光博客
月光博客
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
I
Intezer
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
The Hacker News
The Hacker News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
MyScale Blog
MyScale Blog
腾讯CDC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
量子位

博客园 - 伍华聪

Cursor 里开发一个“一个后端 + 多个前端”项目的时候,推荐的项目目录结构组织方式 使用Cursor实现管理系统的主界面布局的Vue3前端开发 使用Cursor实现管理系统登录界面的快速开发 多租户系统框架的界面分析设计 多租户下的系统业务开发过程探讨 多租户下的ERP系统的仓储管理模块分析设计 多租户下的系统基础表设计 基于SqlSugar开发框架的基础上快速开发H5端的移动应用 在Python+FastAPI项目中使用SqlAlchemy操作数据的几种常见方式 在PySide6/PyQt6的项目中封装一些基础类库,包括文件对话框、字体对话框、颜色对话框、消息对话框等内容 在PySide6/PyQt6的项目中实现样式切换处理 如何在Python开发中实现无代码、纯配置的业务界面展示和常规数据操作的处理分析过程 在Winform开发中,动态增加标签分组,实现数据记录的快速录入 在基于FastAPI的Python开发框架后端,增加阿里云短信和邮件发送通知处理 介绍一个医疗物质数目清点系统的实现过程 在PySide6/PyQt6的开发框架中,增加对表格多种格式录入的处理,以及主从表的数据显示和保存操作。 使用PySide6/PyQt6实现自定义窗口布局,实现类似FluentWindow效果 WxPython跨平台开发框架之主从表展示和录入的界面处理--产品报价单和明细记录的处理 Vue3+ElementPlus的BS端主从表的快速开发 基于Python的FastAPI后端开发框架如何使用PyInstaller 进行打包与部署 使用PySide6/PyQt6实现全国省市区的级联选择组件 基于 SocketIO 消息协议设计报文规范,构建FastAPI上的SocketIO 应用 使用PySide6/PyQt6实现系统图标的展示和选择处理
多租户系统框架的基础模块设计和分析设计
伍华聪 · 2026-04-16 · via 博客园 - 伍华聪

前面介绍了几篇关于多租户下的设计思路,要把多租户下的系统设计落实到实处,在实际开发中进行完善,才能在具体项目上精益求精,否则系统设计终究为空中楼阁,很难在细节上完善到位。

本篇随笔在进行多租户的系统设计完成并落实到开发后,针对某些场景进行了一些分析介绍,例如对于多租户/账套下的菜单和功能点的设计。

1、多租户框架的系统基础模块设计

一个基础的系统,往往需要包含基础的相关模块内容,多租户系统框架下也需要这些,如用户、角色、机构、岗位、权限、菜单、日志(登录日志、操作日志)、通用字典等内容,多租户/账套还需要额外一个多租户/账套信息的管理,如下模块分类所示。

image

有了相关的业务分类,我们通过PowerDesigner设计工具对数据库进行建模。

image

具体的系统开发过程,有兴趣可以参考随笔《多租户下的系统业务开发过程探讨》进行了解。

其中菜单是我们系统界面登录后动态展示的可用菜单。如下为BS端所示的界面。

image
而菜单是根据不同用户的身份进行区分的,系统角色分为超级管理员、租户管理员、一般租户人员等不同角色人员。

菜单使用分级制,如租户级的菜单由超级管理员分配(部分系统菜单),而租户的角色人员根据租户的菜单集合进行二级分配,这样确保不同租户拥有的菜单不一定相同。

用户的用例分析如下所示。

image

系统的菜单由超级管理员维护,定义相关的基础资源。菜单的管理用例如下所示。

image

系统菜单的定义和管理页面如下所示。

image

为了建立菜单和权限的关联管理关系,我们为对应的菜单添加关联权限点的操作,对对于用户管理的菜单和权限点关系,如下所示。

image

系统功能权限是控制用户访问某些按钮或者资源的权限点,一般为树型结构展示,每个功能点对应一个功能编码,和菜单一样是系统资源,须由超级管理员维护,如下界面所示。

image

有了这些准备,系统的租户角色分配菜单和权限就可以一并组合处理了,如下所示。

image

通过配置用户角色的菜单和功能点,我们在页面上就可以根据用户角色拥有的菜单进行展示,并根据每个功能点进行按钮的权限判断,实现了菜单资源和按钮级别的权限控制了。