.net 不同版本指向相同的数据源(db)-最佳实践

.net 不同版本指向相同的数据源(db)-最佳实践,.net,database-design,architecture,application-design,.net,Database Design,Architecture,Application Design,我只是想知道,如果我的应用程序适用于不同的国家,最好的做法是什么。数据源(db)可以通过单个web服务访问。并非每个国家都能同时升级。所以我觉得问题可能是。当我更改并添加新的列/表时,我将不得不更新服务,而以前的版本可能与此不兼容。适应这些变化的最佳实践或最低努力是什么 答案确实取决于您的需求,但是如果您的数据模型位于web服务的后面,那么管理这个问题应该不会很困难 假设美国和英国使用两个不同版本的表(US v1.0和UK 1.1),web服务为美国返回特定数据,为英国返回其他数据,因此web服

我只是想知道,如果我的应用程序适用于不同的国家,最好的做法是什么。数据源(db)可以通过单个web服务访问。并非每个国家都能同时升级。所以我觉得问题可能是。当我更改并添加新的列/表时,我将不得不更新服务,而以前的版本可能与此不兼容。适应这些变化的最佳实践或最低努力是什么

答案确实取决于您的需求,但是如果您的数据模型位于web服务的后面,那么管理这个问题应该不会很困难

假设美国和英国使用两个不同版本的表(US v1.0和UK 1.1),web服务为美国返回特定数据,为英国返回其他数据,因此web服务接收要查询的参数,以将正确的数据返回给美国或英国

现在,如果您有这个参数,您可以使用它将对UK的请求指向表,该表具有v1.1版的新结构,但是如果请求来自美国,web服务将指向一个仍在v1.1版中的视图。因此,您的web服务将变得向后兼容


这只是一个想法,但我认为值得调查。您还可以将所有表格隐藏在视图后面。

我认为这取决于细节

如果更改相对较小,或者主要是添加新字段,那么可能只是更新数据库以获得新版本。旧版本的软件可以与新的数据库模式一起使用

但可能不是。您可能不需要创建视图,以便旧软件可以查看“模拟”模式的视图

软件中可以有一个“超数据层”,读取数据库,然后将打包在一组对象中的数据转发到旧版本,将另一组对象转发到新版本


但坦率地说,我认为如果更改范围很广,而且我有选择权,我会创建两个数据库,而不是玩游戏。

对服务请求进行版本控制会有所帮助。为每个版本创建多个数据库将很难管理。。。由于发布的新版本非常频繁…在我的情况下,我不会删除现有的COL或在任何情况下修改它们。。。我只添加我需要在新版本中处理的新列/表。。。所以我想的是。。添加新表。。不会以任何方式影响旧版本,但现有表中的新COL会影响。。因此,为了在过程中处理它们,我正在考虑添加可选参数,这样以前的版本不会抛出错误,新版本将在其中发送数据。是的,我们经常在开发服务器上遇到这种情况,我们通常有许多程序员出于开发目的访问同一数据库。因此,如果我向表中添加新列并更新存储过程以使用它们,我会使新参数都是可选的,这样我就不会为尚未运行我的新代码的其他开发人员破坏应用程序。只要您只是添加,而不是删除或重组,就可以很好地工作。当你说,哦,这个字段以前是表a中的一列,现在可能有很多,所以我需要把它分成一个多对一的新表。。。。。。关系这就是为什么尝试在新旧代码中使用相同的db时,最多也会变得棘手。