【问题标题】:MultiDatabase based architecture for Web application [closed]基于多数据库的 Web 应用程序架构 [关闭]
【发布时间】:2014-12-25 08:38:05
【问题描述】:

如果我们有一个 ASP MVC4 Web 应用程序,并且我们必须将其提供给多个公司及其登录名,那么就数据库架构而言,最好的方法应该是什么。 我们是否应该为每家公司创建单独的数据库,并基于 url 与各自的数据库连接? 或者我们应该为每个公司制作一个数据库并使用一个密钥?

因为每家公司都将使用相同的 Web 应用程序,但都有自己的记录。

我仍然对此感到困惑,因为如果我们为大约 100 家公司制作单独的数据库,并且我们需要更改数据库的列或单元格,或者我们想要在我们的软件中进行更新,我们将不得不在 100 个数据库中进行更改。那么微软是否为 SQL Server 2008R2 提供了某种方式。

提前感谢您的帮助。

【问题讨论】:

    标签: asp.net sql-server asp.net-mvc sql-server-2008-r2 sql-server-2012


    【解决方案1】:

    正如我的实践所示,通常不同的公司希望 Web 应用程序的某些部分具有不同的功能或附加特性。所以更好的是不仅要分离数据库,还要分离网络应用程序。 还有问题是内部网还是互联网解决方案?如果 Intranet - 没有问题。如果互联网 - 使用第三级域名和每个公司单独的数据库。它会给你更多的灵活性。

    【讨论】:

    • 我会避免为每个客户制作不同的数据库和应用程序,因为它无法扩展。一旦您拥有 1000 个左右的数据库,如果您必须分别处理每个数据库,就会失控。
    • @MartinBrown 如果每个客户都想要特定的功能、设计或附加模块?服务器代码中有 1000 例?
    • 只能补充,如果你这样做,你可能想在你的解决方案中使用迁移项目或 VS 中的SQL Server Database Project,这将包含基本逻辑中的所有更改
    • 我的观点是,为每个客户做不同的事情并不是一种可扩展的商业模式。因为不仅代码必须适应每个客户的要求,开发人员和管理人员也是如此。您需要一个模型,让客户可以通过配置为所欲为。
    • @aleha 如果每个客户都想要特定的功能、设计等。您不再拥有一个系统。现在,每个客户都有一个不同的系统。
    【解决方案2】:

    这并不像听起来那么简单,因为它完全取决于你在做什么。

    Microsoft 在这方面有一篇很好的论文,我强烈建议您在开始之前阅读。 http://msdn.microsoft.com/en-us/library/aa479086.aspx

    在我们公司,我们为每个客户使用一个数据库,并使用一个主数据库来跟踪我们拥有哪些数据库以及它们在什么服务器上。我们还有几个其他数据库用于汇总报告和跟踪后台进程。我们只有一个网站可以访问那些对我们很有效的数据库。

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 2011-08-17
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多