作者:啊123 | 来源:互联网 | 2023-06-22 09:05
SaaS应用程序的设计方式并不唯一,针对不同的业务,需要应用不同的解决方案;第一种、单一数据库,单一代码库使用单个数据库,并将所有客户端数据存储在单个数据库中。您将必须在所有表中添
SaaS应用程序的设计方式并不唯一,针对不同的业务,需要应用不同的解决方案;
第一种、单一数据库,单一代码库
使用单个数据库,并将所有客户端数据存储在单个数据库中。您将必须在所有表中添加一个字段,例如“ tenant_id”,并修改所有SQL查询以选择正确的“ tenant_id”。如果您已经有一个租户应用程序,则需要对代码进行大量修改。
优点:易于管理数据库和更新;没有重复。
缺点:如果您错过了SQL查询中的“ tenant_id”,则可能导致另一个客户端出现问题。功能上,就比较标准化,就是定制化的版本,有什么功能就有什么功能;不能新增或者增减;
适用范围:功能稳定,架构清晰,面向客户的需求明确的系统;
第二种、多个数据库,单个代码库
为每个客户端创建一个单独的数据库。无需修改您现有的单租户代码库。您只需要修改配置文件即可根据客户端选择数据库。
优点:很少修改代码库,易于确保不会混淆客户端数据。
缺点:需要管理多个数据库,因此,在更新数据库架构时,您将必须更新每个数据库。
适用范围:功能稳定,架构清晰,面向客户的需求明确的系统,客户直接不需要连贯的系统;
第三种、多个数据库,多个代码库
创建一个单独的数据库,并为每个客户端复制完整的代码。完全不需要修改。
优点:无需修改代码库,易于确保客户端数据不会混合,易于执行客户端特定的修改。
缺点:要管理多个数据库/代码,因此,如果数据库模式/代码更新,则必须为每个客户端手动更新。造价成本特别高;
适用范围:功能不稳定,需要灵活配置的系统,业务不明确的,标准化不了的系统;造价成本得扛得住才行;
saas