多租户SaaS平台的数据库设计方案
1. 多租户是什么
多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。
简单讲: 在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重 点就是同一套程序下实现多用户数据的隔离。
传统软件模式,指将软件产品进行买卖,是一种单纯的买卖关系,客户通过买断的方式获取软件的使用权,软件的源码属于客户所有,因此传统软件是部署到企业内部,不同的企业各自部署一套自己的软件系统。
Saas模式,指服务提供商提供的一种软件服务,应用统一部署到服务提供商的服务器上,客户可以根据自己的实际需求按需付费。用户购买基于WEB的软件,而不是将软件安装在自己的电脑上,用户也无需对软件进行定期的维护与管理。
在SaaS平台里需要使用共用的数据中心以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍可以保障客户的数据正常使用。由此带来了新的挑战,就是如何对应用数据进行设计,以支持多租户,而这种设计的 思路,是要在数据的共享、安全隔离和性能间取得平衡。
2. 多租户的数据库方案分析
目前基于多租户的数据库设计方案通常有如下三种:
独立数据库
共享数据库、独立 Schema
共享数据库、共享数据表
1) 独立数据库
独立数据库:每个租户一个数据库。
**优点:**为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。
缺点: 增多了数据库的安装数量,随之带来维护成本和购置成本的增加
这种方案与传统的一个客户、一套数据、一套部署类似,差别只在于软件统一部署在运营商那里。由此可见此方案用户数据隔离级别最高,安全性最好,但是成本较高
2) 共享数据库、独立 Schema
什么是Schema?
oracle数据库:在oracle中一个数据库可以具有多个用户,那么一个用户一般对应一个Schema,表都是建立 在Schema中的,(可以简单的理解:在oracle中一个用户一套数据库表)
mysql数据库:mysql数据中的schema比较特殊,并不是数据库的下一级,而是等同于数据库。比如执行create schema test 和执行create database test效果是一模一样的。
共享数据库、独立Schema:即多个或所有的租户使用同一个数据库服务(如常见的Oracle或Mysql数据库),但是每个租户有独立的schema。
优点: 为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可支持更多的租户数量。
缺点: 如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据; 如果需要跨租户统计数据,存在一定困难。
这种方案是方案一的变种。只需要安装一份数据库服务,通过不同的Schema对不同租户的数据进行隔离。由于数据库服务是共享的,所以成本相对低廉。
3)共享数据库、共享数据表
共享数据库、共享数据表:即租户共享同一个Database,同一套数据库表(所有租户的数据都存放在一个数据库 的同一套表中)。在表中增加租户ID等租户标志字段,表明该记录是属于哪个租户的。
优点:所有租户使用同一套数据库,所以成本低廉。
缺点:隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量,数据备份和恢复最困难。
这种方案和基于传统应用的数据库设计并没有任何区别,但是由于所有租户使用相同的数据库表,所以需要做好对 每个租户数据的隔离安全性处理,这就增加了系统设计和数据管理方面的复杂程度。
多租户SaaS平台的数据库设计方案相关推荐
- SaaS-多租户SaaS平台的数据库方案
第2章 数据库设计与前端框架 1 多租户SaaS平台的数据库方案 1.1 多租户是什么 多租户技术(Multi-TenancyTechnology) 又称多重租赁技术:是一种软件架构技术,是实现如何在 ...
- 多租户SaaS平台的数据库方案
多租户SaaS平台的数据库方案 1.1 多租户是什么 多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面 ...
- SaaS-多租户SaaS平台的数据库方案(数据库设计与建模)
2 数据库设计与建模 2.1 数据库设计的三范式 三范式: 第一范式(1NF):确保每一列的原子性(做到每列不可拆分) 第二范式(2NF):在第一范式的基础上,非主字段必须依赖于主字段(一个表只做一件 ...
- 多租户SaaS平台数据库方案
目录 什么是多租户 需求分析 多租户数据库方案分析 独立数据库 共享数据库,独立 Schema Schema 介绍 共享数据库.数据表 三种方案的对比 什么是多租户 多租户技术(Multi-Tenan ...
- Spring Boot构建多租户SaaS平台核心技术指南
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 树下魅狐 来源 | oschina.net/r ...
- Spring Boot 构建多租户 SaaS 平台核心技术指南
1. 概述 笔者从2014年开始接触SaaS(Software as a Service),即多租户(或多承租)软件应用平台:并一直从事相关领域的架构设计及研发工作.机缘巧合,在笔者本科毕业设计时完成 ...
- 实战Spring Boot构建多租户SaaS平台分享(含源代码)
推荐教程 Java 微服务实践视频教程 - Spring全家桶 Java 微服务实践视频教程 - Spring Boot Java 微服务实践 视频教程- Spring Cloud 1. 概述 笔者从 ...
- 快消品行业定制化多租户SaaS系统:提供个性化配置,加速快消品企业运转效率
快消品作为批发行业里竞争较大的品类,其发展情况一直以来都备受瞩目.2021年前三季度,中国快消品的销量和销售额分别增长3.3%和3.6%,实现温和复苏,同时,平均售价小幅上升0.3%,快消B2B行业由 ...
- 快消品多租户SaaS加速企业运转
快消品作为批发行业里竞争较大的品类,其发展情况一直以来都备受瞩目.2021年前三季度,中国快消品的销量和销售额分别增长3.3%和3.6%,实现温和复苏,同时,平均售价小幅上升0.3%,快消B2B行业由 ...
最新文章
- 适合初学者的数据结构_数据结构101:数组-初学者的直观介绍
- 原根与指标,离散对数
- Windows 10 Creators Update 4 月 11 日开始推送
- QTP整合QC自动化测试--目录结构搭建
- php系统毕设答辩问题,计算机专业毕业论文答辩的一般程序及常见问题
- 80. 删除排序数组中的重复项 II golang
- UIAlertAction添加输入框
- Codeforces 120F Spiders
- hadoop第一个例子
- wget 下载需要登录验证的网页文件
- 暴风影音 2007 播放 avi 时出现两个画面的解决办法
- 天思经理人ERP塑胶玩具行业应用方案
- 《大型网站技术架构》学习笔记
- 基于FPGA的数字信号处理3.7开平方运算分析
- 计算机双显卡关掉一个,怎么关掉集成显卡_win10双显卡电脑关闭集成显卡的方法...
- 2021年安全生产模拟考试(建筑起重机司机-施工电梯升降机司机模拟考试题库)安考星
- RTB实时竞价, 重塑网络媒体交易规则
- 序列号 java_JAVA序列号的serialVersionUID
- 最新目标跟踪评估指标汇总
- 获取手机屏幕上点击位置的坐标