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

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

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

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

2)所有客户的单个DB.

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

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

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

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

最佳答案
下面通常应用于此类多租户要求的数据库使用的三种主要技术.您已经指定了其中一些.

>每个租户的单独数据库:

>成本非常高,易于维护/定制,易于调整,易于备份,易于编码.

>共享数据库但不同的架构:

>与(1)相比成本低,可能会随着db大小的增加而迅速遇到问题,每个租户容易个性化,每个租户难以备份/恢复,易于编码.

>共享数据库共享模式:

>低成本,一个租户的负载将影响他人,安全性和应用程序开发是一个挑战,每个租户难以个性化,难以恢复/备份.

我认为以上几点对于托管内部或云端有用.
如果您看到租户数量增加或数据变大,则1)或2)更好.我使用了选项2)并且已经看到它有助于开发和维护.

转载注明原文:数据库 – 用于在云上构建企业Web(RIA)应用程序的数据库体系结构(单个数据库与客户端特定数据库) - 代码日志