当前位置: 首页 > 知识库问答 >
问题:

多租户SaaS应用程序的数据库架构[关闭]

太叔正文
2023-03-14

我想知道如何为每个租户提供定制。我想提供在租户想要的每种形式中添加新字段的设施,包括字段名、数据类型等。现在我的问题是如何为这种类型的场景设计数据库表?正如我所想的那样,我们必须给每个表单赋予表单id,每当租户在表单中创建新字段时,应该在数据库表中创建一个新的行,该行应该具有租户id、表单id、字段名称、数据类型等...

现在请给我真正的解决方案的朋友......我需要这个数据库表设计解决方案立即...

共有1个答案

壤驷乐邦
2023-03-14

使用SQL,租户可以共享数据库集群、数据库或表。术语各不相同。

当租户共享一个数据库集群时,每个租户都有一个专用数据库。这是最容易定制的,在租户中具有最强的隔离性,并且在灾难中最容易恢复。

当租户共享一个数据库时,每个租户都会获得一个私有模式。这也很容易定制,租户之间的隔离度有所降低,并且在灾难中仍然相对容易恢复。不过,一个租户的恢复可能会影响所有租户的性能。

当租户共享一张桌子时,可以说每个租户都有一些私人的行。即使是小规模的定制也非常困难,租户之间的隔离更加困难,单个租户的灾难恢复也非常困难。

我认为最好的选择是每个租户一个数据库或每个租户一个模式。但是你应该知道期望最终用户成为数据库设计师是有风险的。

 类似资料:
  • 我必须在j2ee中开发一个多租户SaaS应用程序,从Iaas和PaaS开始实现三种云模型,我选择了openstack和openshift origin。SaaS应用程序的第一个标准是多租户,我知道有三种方法来实现它——单独的数据库——共享数据库,单独的模式——共享数据库,共享模式。我在这里迷失了方向,因为许多框架,比如ATHENA,ORM,比如hibernate,还有TOPLINK。我需要帮助了解

  • 我正在使用Java、Spring、Struts2和Hibernate设计一个多租户SaaS Web应用程序。经过一些研究,我选择在共享数据库、共享模式、共享表的方法中实现多租户。并用tenantid标记每个db行。 我已经重写了我的应用程序,所以管理者和DAO将把tenantId作为一个参数,只为正确的数据库资源服务。 当获取信息时,这对所有视图来说都是完美的。也用于创建新的东西(使用登录的用户t

  • 我正在为多租户SAAS模型设计web应用程序,由于一些规定,我们决定每个租户有一个数据库,我们正在考虑为我们的中间件提供微服务。但我有点困惑,微服务架构谈论的是“每个微服务都有自己的数据库”。下面是我的问题 如果我将共享数据库用于微服务,这违反了微服务设计的概念/目的,即它们都应该被隔离,任何更改都应该限于该微服务 我可以想到一个层,它模仿我的数据库表作为DTO,每个微服务都通过这个层与数据库通信

  • 我正在将当前的应用程序迁移到多租户体系结构。由于只有一个代码库,我需要解决多个租户的问题。我使用的是单数据库、多模式的方法。每个租户将被分配一个单独的模式,其中元数据保存在默认模式中。 应用程序是用ASP构建的。NET MVC。我使用Dapper连接到我的SQL Server。我有50个函数,使用直接查询和存储过程调用数据库。当为每个租户初始化dapper时,是否有任何方法可以在不改变函数的情况下

  • 问题内容: 我正在开发将来的多租户Web应用程序,它将需要支持数千个用户。该应用程序是在基于Java的Play之上构建的!使用JPA / Hibernate和postgreSQL的MVC框架。 我看了盖伊·纳尔(Guy Naor)关于在Rails中编写多租户应用程序的演讲,其中他谈到了几种多租户方法(数据隔离度随着列表的增加而降低): 每个客户都有一个单独的数据库 一个为每个客户提供单独的架构和表

  • 我正在使用spring boot开发一个多租户应用程序。 系统的业务逻辑将根据每个租户进行更改。 例如,应用程序上的特定租户租赁空间可能希望改变使用一些复杂的自定义逻辑计算值的方式。我想为应用程序注册默认行为/依赖项,并允许特定租户覆盖它。 这可以使用Spring Boot完成吗?