多用户对应多租户解决方案

在这里插入图片描述


需求分析

在进行多租户需求分析时,需要考虑以下几个方面:

  1. 用户管理:在多租户系统中,需要实现对用户的管理。这包括用户的注册、身份验证、权限控制等功能。
  2. 数据隔离:不同租户的数据需要隔离,以确保每个租户的数据不会被其他租户访问或篡改。因此,在多租户系统中,需要考虑如何实现数据隔离。
  3. 安全性:由于多个租户共享同一个应用程序和基础设施,因此需要确保系统的安全性。这包括访问控制、身份验证、数据加密等方面的安全措施。
  4. 扩展性:多租户系统可能需要在不同的时间扩展或缩小,因此需要考虑如何实现可扩展性。
  5. 成本效益:开发和维护多租户系统可能需要较高的成本,因此需要进行成本效益分析,以确保多租户系统的实现是值得的。
  6. 应用程序兼容性:多租户系统需要支持不同的应用程序,因此需要考虑如何实现应用程序兼容性。这可能涉及到与现有应用程序的集成或修改。

通过对以上方面的分析,可以制定出更加全面、具体和可执行的多租户需求,从而为后续的开发、测试和部署工作提供有力的指导。

解决方案

多租户系统的实现通常需要多种技术和解决方案的综合应用,以下是一些常见的多租户解决方案:

  1. 数据库隔离:将不同租户的数据存储在不同的数据库中,或使用数据库表前缀来区分不同的租户。这是一种简单而有效的数据隔离解决方案。
  2. 服务隔离:将多个租户的服务部署在不同的服务器上,或者使用虚拟化技术来实现服务隔离。这种解决方案可以有效隔离不同租户的资源和行为。
  3. 多租户架构:采用多租户架构设计来实现多租户系统,在系统架构上,将底层的服务和资源作为共享层,而将不同租户所需的业务逻辑和数据通过配置实现隔离。
  4. 租户感知应用:应用程序能够感知当前所属租户,并在不同租户间提供分离或共享的功能。例如,为不同租户提供不同的界面配置,而共享服务和流程等。

此外,也可以使用云计算平台、容器化技术、微服务架构等技术和解决方案来实现多租户系统。不同的解决方案适用于不同的场景,需要结合具体需求选择最合适的方案。

我们这里采用的软隔离的方式,再需要隔离的表中增加一个租户id字段,增删改查时通过上下文获取到当前租户id,这样就实现了多租户隔离,对于中小企业,通过开通账号形式实现SaaS服务。这样做优点是控制粒度到表中的数据,例如管理员可以看到所有租户的数据。缺点也显而易见,耦合度较高,维护成本相对较高。详细关系如下:

  1. 项目默认初始化一个超级管理员租户,超级管理员,超级管理员角色。
  2. 用户和租户为多对多关系
  3. 用户和角色为多对多关系
  4. 用户和(组织和岗位)为多对多关系
  5. 角色权限为1对多关系
  6. 超级管理员用户可以管理所有的用户包括自己
  7. 管理员用户可以管理自己所在租户下的用户,不包括自己
  8. 权限管理顺序为:超级管理员用户 -> 管理员用户 -> 普通用户
  9. 权限大小为:超级管理员用户 > 管理员用户 > 普通用户
  10. 权限粒度可以细分到每个按钮
  11. 接口权限是与菜单权限分开的,同样可以细化到每个接口权限的分配

实现步骤

表结构设计

[外链图片转存中…(img-15Qjz7lG-1685261629610)]

逻辑实现

由于逻辑表复杂,下面我们使用流程图来展示

用户新增流程
在这里插入图片描述

多租户管理思维导图
在这里插入图片描述


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘凌枫羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值