云上企业Web(RIA)应用的数据库架构(单个数据库与客户端专用数据库)

4
我们正在重写现有的RIA并重新设计我们的数据库以重新架构其设计。现在我们对数据库有2种选择意见:
(这些选择是针对基于SaaS的托管的。)
1)每个客户一个独立的数据库。
2)所有客户都使用单个数据库。
我们预计会有大量数据,有些客户的数据库大小在2GB到10GB范围内。表的数量约为100个。
我可以得到关于应该选择哪种方案的答案吗?
我们目前不考虑NoSQL解决方案,但我们计划使用JPA(Java Persistence API)支持约4-5个数据库,其中包括MySQL,Postgres,Oracle,MSSQL。
附注:我们可能利用亚马逊云进行托管。
1个回答

20
通常在多租户需求中,以下是通常应用于数据库使用的三种主要技术。您已经指定了其中一些。
  1. 为每个租户单独创建一个数据库:
    • 成本很高,易于维护/自定义,易于调整,易于备份,易于编码。
  2. 共享数据库但具有不同的模式:
    • 与(1)相比成本较低,随着数据库大小的增加可能会迅速遇到问题,易于根据每个租户进行个性化设置,每个租户的备份/还原困难,易于编码。
  3. 共享数据库共享模式:
    • 成本低,一个租户的负载将影响其他租户,安全和应用程序开发具有挑战性,难以根据每个租户进行个性化设置,难以还原/备份。
我认为以上观点适用于在本地或云端进行托管。如果您看到租户数量增加或数据变得更大,则1)或2)是更好的选择。我曾使用过选项2),并看到它对开发和维护有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接