在我當(dāng)前的項目中,我使用 Envers 5.2.12 來審核實體更改。由于安全限制,我必須手動創(chuàng)建審計表和 revinfo 表,它們不能包含外鍵。如果我在沒有外鍵引用的情況下創(chuàng)建它們會干擾 Envers 的正常行為嗎?
1 回答

白衣非少年
TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊
簡短的回答是,Envers 將在沒有定義外鍵的情況下工作。
這里的主要警告是,這一切都假設(shè)所維護(hù)的數(shù)據(jù)在相關(guān)行之間保持一致,就好像定義了外鍵一樣。
如果從審計表中插入或刪除審計數(shù)據(jù),否則通常會使外鍵無效并生成約束違規(guī)異常,則所有保證均無效。
外鍵的目的是保證相關(guān)行之間的數(shù)據(jù)完整性。沒有它們,您將永遠(yuǎn)不會知道操作何時違反該指令,并且當(dāng)您發(fā)現(xiàn)問題時,您的數(shù)據(jù)完整性可能會受到嚴(yán)重?fù)p害,最好從頭開始。
雖然 Envers(通常說大多數(shù)應(yīng)用程序)可以在沒有 FK 定義的情況下運行,但您應(yīng)該使用它們,因為它們實際上是任何關(guān)系數(shù)據(jù)庫環(huán)境中的基石原則。
添加回答
舉報
0/150
提交
取消