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

时间:2013-03-28 13:30:01

标签: database database-design architecture cloud saas

我们正在努力重写现有的RIA并重新设计我们的数据库以重新设计它的设计。现在我们对数据库有2条意见:

(此选择适用于基于SaaS的托管。)

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

2)所有客户都使用单个数据库。

我们期待大量的数据,我们的一些客户的数据库大小从2GB到10GB不等。表数约为100。

我可以得到一个答案,我们将选择哪种选择?

我们目前没有考虑NoSQL解决方案,但我们计划支持大约4-5个带有JPA(Java Persistence API)的数据库,其中包括MySQL,Postgres,Oracle,MSSQL。

P.S:我们可能会利用亚马逊云进行托管。

1 个答案:

答案 0 :(得分:18)

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

  1. 每个租户的单独数据库:
    • 成本非常高,易于维护/定制,易于调整,易于备份,易于编码。
  2. 共享数据库但不同的架构:
    • 与(1)相比成本低,可能会因数据库大小增加而迅速遇到问题,每个租户容易个性化,每个租户难以备份/恢复,易于编码。
  3. 共享数据库共享架构:
    • 低成本,一个租户的负载会影响他人,安全性和应用程序开发成为挑战,每个租户难以个性化,难以恢复/备份。
  4. 我认为以上几点适用于托管内部或云端。 如果您看到租户数量增加或数据变大,则1)或2)更好。我已经使用了选项2)并且已经看到它有助于开发和维护。