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