Можно ли вручную создать таблицы аудита Envers без внешнего ключа revinfo? - PullRequest
0 голосов
/ 08 февраля 2019

В моем текущем проекте я использую Envers 5.2.12 для аудита изменений объекта.Из-за ограничений безопасности я должен вручную создать таблицу аудита и таблицу revinfo, и они не могут содержать внешний ключ.Если я создам их без ссылки на внешний ключ, будет ли это мешать нормальному поведению Envers?

1 Ответ

0 голосов
/ 11 февраля 2019

Короткий ответ, Envers будет работать без определения внешних ключей.

Главное предостережение здесь заключается в том, что все это предполагает, что сохраняемые данные остаются согласованными между связанными строками, как если бы внешний ключ былопределены.

В случае вставки или удаления данных аудита из таблиц аудита, которые в противном случае обычно делают недействительным внешний ключ и генерируют исключение нарушения ограничений, все гарантии аннулируются.

Цель внешнего ключа - гарантировать целостность данных между связанными строками.Без них вы никогда не будете знать, когда операция нарушает эту директиву, и к тому времени, когда вы заметите проблему, ваша целостность данных может быть настолько подорвана, что может быть лучше просто начать с нуля.

Хотя Энверс (икак правило, большинство приложений) могут работать без определений FK, вы должны использовать их, поскольку они буквально являются краеугольным принципом в любой среде реляционных баз данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...