sql – 一个应用程序多个实例和不同的数据库

我正在构建一个案例管理应用程序,其中一个要求是每个客户端都使用自己的URL获取自己的数据库.但是,升级时维护应用程序的多个实例已成为一场噩梦.我正在使用IIS 7 ASP.NET MVC.我想有一个应用程序,让应用程序知道根据用户身份验证从哪个数据库获取数据.有可行的替代方案吗?

解决方法

是的,如果可能的话,最好有一个应用程序实例,否则会变得复杂.如果不同客户端的功能不同,则使用功能标志为每个客户端/用户打开/关闭功能.请参阅Martin Fowler的以下文章.功能标志可以是每个用户或客户端. Facebook和其他几个主要网站都有效地使用功能标记.

http://martinfowler.com/bliki/FeatureToggle.html

关于数据库,我认为您可以拥有一个Common数据库,其中包含所有基本信息,包括所有客户端,然后具有特定于每个客户端的其他数据库,其中包含客户端的所有其他数据.

当任何用户在Global.asax的Session_Start方法中命中客户端特定URL时,添加逻辑以获取相应的连接字符串并将其存储在会话中(Session [“ClientDbConnectionString”]),以便您可以在需要来自客户端数据库的数据时使用它.

我建议您将所有连接字符串存储在Common数据库的表中(使用标识每个客户端的键),以便在您想要加载新客户端时添加新的连接字符串行.每当您执行新版本时,我建议一起更新所有客户端数据库,而不是仅更新一个客户端数据库,否则一段时间后它将变得无法管理.

相关文章

本篇内容主要讲解“sqlalchemy的常用数据类型怎么使用”,感...
今天小编给大家分享一下sqlServer实现分页查询的方式有哪些的...
这篇文章主要介绍“sqlmap之osshell怎么使用”,在日常操作中...
本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际...
1. mssql权限sa权限:数据库操作,文件管理,命令执行,注册...
sql执行计划如何查看?在SPL庞大的数据中我们不知道如何查看...