概述
最近公司需要开发一个SaaS版的仓库系统,因为之前没有SaaS系统的开发经验在网上找了大量的关于SaaS的资料,SaaS系统最关键点就是数据隔离,常见的数据隔离方法有同库同表通个租户ID来区分,分库隔离;同库同表优点是使用的资源较少,但出来的数据杂乱切难于修改维护;分库隔离使用资源比较多,但数据隔离上也是比较好的。因为公司有自己的云主机资源比较充足所以我们采用的分库隔离的方法。
技术选型
在技术上前端使用的是Vue+Element,后端使用SpingBoot+MyBatis;
框架使用若依 ruoyi.vip
实现思路
因为是采用分库形式,所以在登陆时采用填写公司名来识别租户的数据库;在租户注册并支付后执行sql的脚本实现建立租户的库与表。业务逻辑通过jwt+redis获取用户的Database Name定位数据库进行逻辑操作
难点
- 登陆识别
- 注册建库
- 业务逻辑数据定位
- Database 迭代更新
- 数据库备份
- 购买续费
解决方案
- 登陆识别有2种方式:一种是以公司为主体;一种是以用户为主体;
1)公司为主体的需要在登陆时需要区识别对应的Database;
2)用户为主体的则有2种方式识别:1、用户自己创建公司;2、用户加入已创建公司<