在我目前的项目中,我使用Envers 5.2.12审计实体的变化。由于安全限制的,我必须手动创建审计表和revinfo表的时候,不能包含一个外键。如果我没有外键引用创建它们将在Envers正常行为干扰?
简短的回答,Envers将与定义没有外键的工作。
这里主要需要注意的是,这一切都假定为如果外键定义得以保持数据保持相关行之间是一致的。
在审计数据中插入或审核表,否则通常无效外键并产生约束违例异常删除的情况下,所有的担保无效。
一个外键的目的是为了保证相关行之间的数据完整性。没有他们,你永远不会知道当操作违反该指令和你的时间发现你的数据的完整性也可以这么妥协它可能是更好的问题简单地从头开始。
虽然Envers(一般说大多数应用程序)可以在不FK定义操作,你应该因为他们是名副其实的基石原则在任何关系型数据库环境中使用。