Oracle
對於大型應用程序,在同一數據庫中的不同模式中的表上創建外鍵是不是壞主意?
我正在將一個基於 pl/sql 的大型應用程序傳輸到專用伺服器。該應用程序位於一個包含 70 個程式碼包的模式中。這個應用程序是在不同時間大約有 15 人提出的。我們通常的做法是在不同模式的引用表上創建外鍵,因為它非常方便並且保持數據庫非常乾淨,因為我們不需要在不同的模式中保留相同的引用表。
但無論如何,我的 DBA(他用 DB 創建了新實例並在 Solaris 區域內複製了我的應用程序)今天說得很嚴厲,“不同模式上的外鍵是邪惡的,你需要銷毀它!”。他沒有解釋他的觀點。
使用大型應用程序這樣做真的是個壞主意嗎?
模式很好地將表與邏輯子系統隔離開來。外鍵保證數據的完整性。這些是正交概念——顯然子系統之間的數據完整性也是必須的。會計和運輸以及可能的中央客戶數據不會存在於客戶在會計中使用時可能被刪除的孤島中。
這就是我在 SQL Server 上的做法(儘管我們對模式的定義是 IIRC,與 Oracle 的定義略有不同)。
因此,我認為DBA的要求是無能的標誌。噸