共享数据库、独立 Schema

(1) 什么是Schema

oracle数据库:在oracle中一个数据库可以具有多个用户,那么一个用户一般对应一个Schema,表都是建立在Schema中的,(可以简单的理解:在oracle中一个用户一套数据库表)

mysql数据库:mysql数据中的schema比较特殊,并不是数据库的下一级,而是等同于数据库。比如执行create schema test 和执行create database test效果是一模一样的

共享数据库、独立 Schema:即多个或所有的租户使用同一个数据库服务(如常见的ORACLE或MYSQL数据库),但是每个租户一个Schema。

优点: 为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可支持更多的租户数量。

缺点: 如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据; 如果需要跨租户统计数据,存在一定困难。

这种方案是方案一的变种。只需要安装一份数据库服务,通过不同的Schema对不同租户的数据进行隔离。由于数据库服务是共享的,所以成本相对低廉。

共享数据库、共享数据表

共享数据库、共享数据表:即租户共享同一个Database,同一套数据库表(所有租户的数据都存放在一个数据库的同一套表中)。在表中增加租户ID等租户标志字段,表明该记录是属于哪个租户的。

优点:所有租户使用同一套数据库,所以成本低廉。
缺点:隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量,数据备份和恢复最困难。

这种方案和基于传统应用的数据库设计并没有任何区别,但是由于所有租户使用相同的数据库表,所以需要做好对每个租户数据的隔离安全性处理,这就增加了系统设计和数据管理方面的复杂程度。

多租户数据库设计方法:共享数据库表相关推荐

  1. Oracle数据库设计方法

    数据库设计师建立数据库及应用系统的技术,是信息系统开发和建设中的核心技术,具体来说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能够有效存储数据,满足各种用户 ...

  2. 数据库设计方法、规范与技巧(推荐)

    数据库设计方法.规范与技巧(推荐) 一.数据库设计过程 数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户 ...

  3. MySQL数据库设计概念(多表查询事务操作)

    每天进步一点点 数据库设计概念 数据库设计简介 表关系(多对多) 表关系(一对多) 表关系之一对一 多表查询 笛卡尔积现象 内连接查询 外连接查询 嵌套查询(子查询) 事务操作 事务的概念 手动提交事 ...

  4. 多租户数据库设计方法:独立数据库

    目前基于多租户的数据库设计方案通常有如下三种: 独立数据库 共享数据库.独立 Schema 共享数据库.共享数据表 独立数据库 独立数据库:每个租户一个数据库. 优点:为不同的租户提供独立的数据库,有 ...

  5. 数据库设计方法、规范与技巧

    本文链接: http://www.openphp.cn/index.php/art.../100/index.html 一.数据库设计过程 数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个 ...

  6. 数据库设计方法与规范 数据库设计过程

    数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求. 数据库设计中需求分析阶段综合各个用 ...

  7. 数据库设计层次3:构建表

    源自:Stairway to Database Design Level 3: Building Tables 作者Joe Celko, 翻译:刘琼滨 谢雪妮 许雅莉 赖慧芳 译文: 对于设计和创建数 ...

  8. 大数据量下数据库设计及分库分表拆分原则

    在设计数据库的建设前,首先准备工作是了解业务,然后根据业务数据进行数据库设计,设计的同时需要考虑业务数据量.可改造性.数据弱一致性.读写分离.复杂SQL多样化等: 首先,可数据根据读弱一致性可以考虑添 ...

  9. mysql数据库设计原则_mysql数据库设计总结

    作者:腾讯云技术社区 链接:https://www.zhihu.com/question/19719997/answer/154809252 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...

最新文章

  1. C面向对象之透明指针的运用
  2. 最快最简单的排序(之二)——桶排序(简化版)
  3. java it_Java中的Iterator的用法
  4. 内存管理:_CrtDumpMemoryLeaks和_CrtSetBreakAlloc
  5. 机器学习(machine learning)之AdaBoost算法
  6. python asyncio future_Python asyncio.isfuture方法代码示例
  7. 二分法:两个有序数组长度为N,找到第N、N+1大的数
  8. 用自己的数据集训练Mask-RCNN实现过程中的坑
  9. 以太网安全技术ACL原理+配置
  10. Java生成随机数原理_JAVA随机数生成的机制
  11. 苹果电脑python编程里面怎么切到中文_苹果电脑输入法怎么切换到中文
  12. 构建Spring Cloud项目找不到Application类
  13. Windows10开启电脑卓越性能模式,运行速度提升10%,CUP利用率达到50%
  14. 计算机系统时间在哪改,win10系统日期时间在哪里修改?win10修改电脑时间的方法...
  15. 关于Word插入图片闪退
  16. 第14章 Python网络爬虫
  17. 为什么要学数学?因为它真的没用啊!
  18. Javascript setTimeout()
  19. java获取当前时间的小时
  20. JS小数运算的正确姿势:保留两位小数技巧全解析

热门文章

  1. HNOI2017 游记
  2. 设计——主观理想路径
  3. zigbee 协议栈的时钟和定时器分频
  4. nopCommerce的源代码结构和架构
  5. 当excel 导入数据库的字段大于255时,把第一行的字段加长超过255.
  6. .NET 指南:实现 Equals 方法
  7. Community Server专题一:概述Community Server
  8. SpringCloud源码:Ribbon负载均衡分析
  9. iOS程序员也要学点算法吧 简单排序之插入排序
  10. 腾达W303R v3 无线路由器使用移动光纤无法打开视频的设置方法