云系统的数据库概念是什么?

问题描述 投票:0回答:1

亲爱的,我想创建企业资源计划云系统,我想知道许多使用同一软件的客户的概念是什么,但是每个客户都有专用的数据库,它是如何工作的?

它通过创建多个数据库来工作,并且我通过每个客户端的连接字符串来控制它?或者,它只是创建一个数据库,我通过伪造键列来控制它?

asp.net sql-server cloud erp
1个回答
0
投票
这里没有正确的答案;这真的取决于您的要求。相反,您应该根据应用程序的需求评估权衡。

几乎只有一个数据库是最简单的入门方法。它使管理架构更新变得更简单,并且根据托管选项的性质,其价格可能会更低。取决于您有多少客户,但是,单个数据库稍后可能会带来不小的性能挑战,而这可能很难对其进行优化。

您通常最终会用单个数据库解决性能挑战的方法是通过

sharding,它表示两种方法的hybrid。在sharding中,您仍将有一个供客户使用的键列,以及多个数据库。在此模型中,每个客户都将位于不同的数据库中,但是每个数据库通常会有多个客户。通过分片,可以从单数据库方法扩展到多数据库方法,而无需重新架构。 Microsoft还提供了工具,以帮助通过分片扩展数据库。

您没有提到要托管在哪个云提供商上。如果您使用的是Azure,建议阅读他们的Multi-tenant SaaS database tenancy patterns文章。实际上,即使您

not

使用Azure,您也可能会发现这对于思考不同的选项及其折衷方案很有用。
© www.soinside.com 2019 - 2024. All rights reserved.