Mar*_*era 4 sql database versioning oracle views
欢迎任何轶事评论或建议.
我们的应用程序通过视图使用第三方供应商数据.该企业已要求我们绑定到先前版本的视图的应用程序应该能够继续使用它们,而不是必须与视图的每个更新的供应商版本同步.应用"A"应该能够使用的意见V.1.1而应用"B"使用的意见,这两者在全球架构/命名空间相同的表进行交互V.1.2.
人们建议使用版本号命名视图,但对于与更新版本的视图保持同步的应用程序来说这似乎很麻烦.这个问题有更好的解决方案吗?也许将每个受支持的视图版本保留在它自己的模式中,并使视图从定义表的全局模式和数据所在的位置拉出?
如果要维护视图层,通常可以通过将v1.2更改限制为向现有视图添加其他列或添加其他视图来保持版本之间的兼容性.不想升级的应用程序将继续使用现有视图的现有列,而想要升级的应用程序可以使用新视图.Oracle数据字典视图就是这种方法的一个很好的例子.在每个新版本中,都有许多新视图为需要它的应用程序公开新功能.但是,针对Oracle 7中的数据字典视图编写的脚本将很乐意针对11.2数据库运行(可能效率较低).
这与维护任何其他类型的API没有什么不同.在发布1.2版本时,通常不会删除现有的API调用或强制用户将其他参数传递给API.相反,您将旧的API调用转换为新版本.当然,您可能不得不弃用API的某些部分并强制现有应用程序进行小幅升级.但是这些是相对罕见的,只需要应用程序更改代码使得一个不推荐的调用 - 应用程序不需要完全升级到新的v1.2 API.