Day31项目saas-export项目-多租户数据库设计

(一)多租户架构介绍

  • (1)什么是多租户架构?
    在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务
    》》以前:不同的企业各自部署一套自己的软件系统
    》》现在:Saas模式,应用统一部署到服务提供商的服务器上,客户可以根据自己的实际需求按需付费
  • (2)多租户架构的核心是什么?
    用户间数据隔离
    不能让A以外的企业,访问到A的数据
    多租户设计的本质,就是指在saas模型下如何设计数据库

(二)多租户架构的数据库设计

  • (1)多租户架构的数据库设计有几种?
    》3种
    》》A .独立数据库服务
    》》B .共享数据库服务、独立 Schema
    》》C .共享数据库服务、共享Schema,共享数据表

A.独立数据库服务

  • (1)什么是独立数据库服务?
    一个租户一个数据库
  • (2)有什么特点?
    优点:
    》简化数据模型的扩展设计
    》如果出现故障,恢复数据比较简单
    缺点:
    》数据库的安装数量(成本)增大

在这里插入图片描述

B .共享数据库服务、独立 Schema

  • (1)什么是独立 Schema?
    一个数据库服务(如常见的ORACLE或MYSQL数据库),但是每个租户一个Schema
  • (2)什么是 Schema?
    包含多张表的单位。
    》》oracle数据库:一个用户一套数据库表
    》》mysql数据库:等同于数据库。create database db1
  • (3)独立 Schema有什么特点?
    优点:每个数据库可支持更多的租户数量,数据库服务是共享的,所以成本相对低廉
    缺点:如果出现故障,数据恢复比较困难,如果需要跨租户统计数据,存在一定困难

在这里插入图片描述

C.共享数据表

  • (1)共享数据表是什么?
    所有租户的数据都存放在一个数据库的同一套表中
    在表中增加租户ID等租户标志字段,表明该记录是属于哪个租户的
    在这里插入图片描述

  • (2)共享数据表有什么特点?
    》优点:
    所有租户使用同一套数据库,所以成本低廉。
    》缺点:
    隔离级别最低,安全性最低
    加大对安全的开发量
    数据备份和恢复最困难

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/109239194