我正在處理的應用程序有一個遺留問題,其中創建了2個表ADULT和CHILD在oracle 11g dB中。 這導致了許多相關的表都有ADULT字段和CHILD沒有FK應用。 這個錯誤發生在糟糕的發展已經將關係映射到錯誤的領域。使用物化視圖來修復錯誤並減少代碼
我們的技術架構師計劃將ADULT和CHILD表合併到新的ADULT_CHILD表中,並創建物化視圖來代替表。該計劃還將創建一個新的id值,並替換所有關聯表中的I值,因此即使plsql/apex代碼映射到錯誤的字段,數據映射仍然是正確的。
這個解決方案背後的推理它並不要求我們改變任何其他代碼。
我的看法是這是一個騙局,但我更多的Java/.NET面向對象。
我可以用什麼論據來說服建築師這是錯誤的,而不是真正的解決方案。我擔心我們正在創建更復雜的解決方案,並且性能將成爲問題。
感謝任何指針
你們兩個人中的一個在你對「物化視圖」的理解上是錯誤的 - 它們只是給定時間的數據快照。因此,除非您打算持續更新它們,否則主表上的第一次更新後,它們中的數據將不正確。你可以使用普通的觀點 - 我認爲沒有理由不這樣做。 –
該示例看起來像是在更新源表時更新MV。我應該關心表現嗎? – aurawibbler
採取爲備份/複製/快照而設計的某些東西,並試圖使用它(困難)而不是標準視圖的意義何在。針對標準「視圖」的爭論是什麼?更新時間不會比嘗試複製更新的數據更差,如果您在主表上需要索引,查詢時間再次不會更糟。那麼,爲什麼不呢? –