首页 > 解决方案 > 单个网站,单个数据库架构多副本

问题描述

我知道这可能是我正在考虑的逻辑混乱,但情况是我有一个网站,它有 8 个多个副本,相同的网站相同的数据库架构,但发布在同一服务器上的不同位置。

我的问题是我有大约 50 个存储过程(每个数据库),那么我该怎么做才能使维护更容易?

每次修改一个存储过程都要修改8个地方吗?我应该web.config每次发布操作更改文件 8 次吗?

我正在考虑制作一个简单的 CMS 系统,我将存储发布目录并单击按钮将所有项目发布到选定的目录,但我仍然有一个问题是存储过程?在首次发布时,我正在考虑在首次发布时更改整个存储过程。

欢迎任何建议,现在我只有一个副本,您知道做出决定后很难维护。

顺便说一句,该网站是 ASP.NET Web 窗体,但我可以将其移植到任何新的 .NET Web 技术,如 MVC 或 .NET Core。

标签: asp.netsql-serverconcept

解决方案


如果您可以完全控制托管,那么Dai建议的“多租户数据库设计”将是更好的方法。但是,如果情况需要多个实例,那么您可以执行以下操作:

  1. 在您的数据库中存储一个版本号,以便您知道哪些脚本已运行,哪些未运行。

  2. 编写任何架构更改(包括任何存储过程)、潜在的种子数据以及包括新的数据库版本号的脚本。

  3. 将脚本存储在网站下的目录中。

  4. 有一个维护例程(手动或自动),通过比较版本号来运行以前未运行的任何新脚本。


推荐阅读