我正在处理的应用程序有一个遗留问题,其中创建了2个表ADULT和CHILD在oracle 11g dB中。 这导致了许多相关的表都有ADULT字段和CHILD没有FK应用。 这个错误发生在糟糕的发展已经将关系映射到错误的领域。使用物化视图来修复错误并减少代码
我们的技术架构师计划将ADULT和CHILD表合并到新的ADULT_CHILD表中,并创建物化视图来代替表。该计划还将创建一个新的id值,并替换所有关联表中的I值,因此即使plsql/apex代码映射到错误的字段,数据映射仍然是正确的。
这个解决方案背后的推理它并不要求我们改变任何其他代码。
我的看法是这是一个骗局,但我更多的Java/.NET面向对象。
我可以用什么论据来说服建筑师这是错误的,而不是真正的解决方案。我担心我们正在创建更复杂的解决方案,并且性能将成为问题。
感谢任何指针
你们两个人中的一个在你对“物化视图”的理解上是错误的 - 它们只是给定时间的数据快照。因此,除非您打算持续更新它们,否则主表上的第一次更新后,它们中的数据将不正确。你可以使用普通的观点 - 我认为没有理由不这样做。 –
该示例看起来像是在更新源表时更新MV。我应该关心表现吗? – aurawibbler
采取为备份/复制/快照而设计的某些东西,并试图使用它(困难)而不是标准视图的意义何在。针对标准“视图”的争论是什么?更新时间不会比尝试复制更新的数据更差,如果您在主表上需要索引,查询时间再次不会更糟。那么,为什么不呢? –