【问题标题】:Single ASP.NET MVC application using multiple databases使用多个数据库的单个 ASP.NET MVC 应用程序
【发布时间】:2012-03-22 13:33:22
【问题描述】:

我想构建一个连接到多个数据库的应用程序。

客户将有一个地址来访问您的应用程序(例如 customer1.myproduct.com),然后该应用程序访问数据库“customer1”。每个客户都有自己的数据库。

有什么更好的方法来建立这些联系?我应该注意什么才能获得良好的应用程序性能?

【问题讨论】:

  • 你是说每个客户都有自己的数据库吗?
  • 您使用什么技术与您的数据库通信?似乎您可以拥有某种 DB 上下文提供程序,它从 URL 服务器变量中读取子域名,并将其与同名的连接字符串匹配。将该连接字符串用于您的数据库工作。
  • 不是这方面的专家,但如果您要为每个客户自己部署应用程序,则可以使用网络配置路线。但如果它是动态的(用户通过公共门户签名),你需要某种形式的主数据库
  • 为什么他们必须有一个单独的数据库?我确定这不是客户要求。考虑一下您的架构和基本的数据库规范化。

标签: c# asp.net-mvc-3 multiple-databases


【解决方案1】:

为每个客户建立一个数据库是个坏主意。您将如何手动为每个客户创建新数据库?

维护所有这些连接并非易事。

【讨论】:

    【解决方案2】:

    没有什么可以阻止您让 ASP.NET 应用程序访问多个数据库,在解决方案的 web.config 中,您可以添加多个连接字符串。在标签中。

    <connectionStrings>
        <add name="DefaultConnection" .....>
        <add name="EmployeeConnection" .....>
     </connectionString>
    

    如果我是你,我会使用“ADO.NET 实体模型”和“Linq”来访问数据,为了获得良好的应用程序性能,这一切都取决于你在做什么,它的数量和持续时间。当您遇到困难时最好检查一下或阅读http://msdn.microsoft.com上的一些最佳实践

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      您可以更改项目中的配置文件或创建新的。我认为您只能在配置文件中更改 connectionString 就足够了。当您想更改数据库时,您只需更改:

      <connectionStrings>
        ...
        connectionString="new connectionstring"
        ...
      </connectionStrings>
      

      应该为 chage 创建小型应用程序。

      【讨论】:

        猜你喜欢
        • 2015-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 2019-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多