多租户的系统可以应用这种模式的思想,将思想融入到系统的设计之中。
一、多租户的系统,目前在数据库存储上,一般有三种解决方案:
1.独立数据库
2.共享数据库,隔离数据架构
3.共享数据库,共享数据架构
这里我就系统的实际需求情况,选择了第二种解决方案,下面简单介绍下
二、数据库我选用的是SqlServer,因为SqlServer自带的Schema刚好符合这种需求。至于Mysql,Oracle的Schema应该是有不同的设计,不同于SqlServer,这里我就只针对SqlServer而言。
如果你百度SqlServer的Schema方面的知识介绍,会有不少的Schema的语法介绍,但是很少有一套sql脚本针对多租户设计的,我在这里做个整理。
1.创建数据库
create database
SingleDbMultipleSchema
go
2.切换到目标数据库
use SingleDbMultipleSchema
go
3.创建用户并绑定登录名并赋予默认schema
create login UserTemp with password = N'admin@123'
create user UserTemp for login UserTemp with default_schema = UserTempSchema
go
4.创建schema并授权默认用户
create schema UserTempSchema authorization UserTemp
go
5.补充建表权限(PS:这句sql找的好苦。。。)
grant create table to UserTemp
go