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

用于在云上构建企业Web(RIA)应用程序的数据库体系结构(单db vs客户端特定db)

督弘化
2023-03-14

我们正在重新编写现有的RIA,并重新设计数据库,以重新构建其设计。现在我们对数据库有两种看法:

(此选项适用于基于SaaS的主机。)

1)每个客户的个人数据库。

2) 为所有客户提供单一数据库。

我们希望有大量的数据,我们的一些客户的数据库大小在2GB到10GB之间大约有100张桌子。

我能得到一个关于我们应该选择哪个的答案吗?

到目前为止,我们还没有考虑非关系型数据库解决方案,但是我们计划用JPA(Java持久化应用编程接口)支持大约4-5个数据库,其中包括MySQL、Postgres、Oracle、MSSQL。

附言:我们可能会利用亚马逊云进行托管。

共有1个答案

申浩广
2023-03-14

对于这种多租户需求,通常应用于数据库使用的三种主要技术如下。您已经指定了其中一些。

  • 为每个租户分离数据库:
    • 非常高的成本,易于维护/定制,易于调整,易于备份,易于编码。
    • 与(1)相比,成本较低,可能会快速遇到db大小增加的问题,容易对每个租户进行个性化设置,难以对每个租户进行备份/恢复,易于编码。
    • 成本低,一个租户的负载会影响其他租户,安全和应用程序开发是一个挑战,每个租户很难个性化,很难恢复/备份

    我认为以上几点适用于在本地或云上托管。如果你看到租户数量增加或数据越来越大,那么1)或2)就更好了。我使用了选项2),并看到它有助于开发和维护。

 类似资料:
  • 我是一个iOS开发人员,有一定的经验,这个问题对我来说真的很有趣。我看到了关于这个话题的很多不同的资源和材料,但尽管如此,我还是感到困惑。iOS联网应用的最佳架构是什么?我指的是基本的抽象框架,模式,它将适合每一个网络应用程序,无论是一个只有几个服务器请求的小应用程序,还是一个复杂的REST客户机。苹果建议将 作为所有iOS应用程序的基本架构方法,但无论是 还是更现代的 模式都没有说明将网络逻辑代

  • 问题内容: 让我们分享基于Java的Web应用程序体系结构! Web应用程序有许多不同的体系结构,这些体系结构将使用Java来实现。这个问题的答案可以用作各种Web应用程序设计的库,各有其优缺点。虽然我意识到答案将是主观的,但让我们尽可能做到客观,并激发我们列出的利弊。 使用您喜欢的详细程度描述体系结构。为了使您的答案具有任何价值,您至少必须描述所描述的体系结构中使用的主要技术和思想。最后但并非最

  • 我是WPF和MVVM的新手。这是我通常为ASP.NET应用程序设置体系结构的方式: 数据层 我通常使用ORM工具将数据持久化到数据库中。 业务层 这包括我所有的商业模式和商业逻辑。 服务层 这一层用作进入后端系统的入口点。(有时通过周转基金)。这一层负责将业务模型转换为视图模型。 表示层 这一层用于表示逻辑。 我知道MVVM的视图是.xaml文件并驻留在WPF应用程序中。但是,我对“模型”和“Vi

  • 问题内容: 我正在制作一个Android应用程序。因为它是如此简单,所以我首先想到我可以简单地消除充当中间件的服务器上对Java应用程序的需求。我尝试使用MySQL的JDBC驱动程序直接连接到数据库,但是我的程序崩溃了,所以我不确定Android是否“支持” MySQL的JDBC驱动程序。 因此,我正在考虑如何实施该应用程序。基本上,应用程序从远程MySQL数据库写入一些数据,并从远程MySQL数

  • 我是一个有经验的iOS开发人员,这个问题对我来说真的很有趣。我看到了很多关于这个话题的不同的资源和材料,但尽管如此,我仍然感到困惑。一个iOS联网应用程序的最佳架构是什么?我指的是基本的抽象框架和模式,它适合每一个网络应用程序,无论是只有少量服务器请求的小应用程序,还是复杂的REST客户端。苹果推荐使用作为所有iOS应用程序的基本架构方法,但无论是还是更现代的模式都没有说明网络逻辑代码应该放在哪里

  • 我对web应用程序向微服务的发散点感到困惑--它是在url级别还是模型级别?举个例子,假设我有一个单片应用程序,它提供3个页面。假设每个页面都有一个单独的用法,我想用它们自己的微服务来支持它们。下面哪一种是实现基于微服务的体系结构的正确方法: 我创建了三个不同的应用程序(微服务),每个都包含一个页面的(路由、控制器、模型、模板)。然后根据哪个页面被请求,我将请求路由到那个特定的应用程序。这意味着从