Я работаю над проектом контрольного следа, за которым нам сказали следовать.
Отслеживайте все таблицы (200+) в нашей базе данных с теневыми таблицами, как это делает Hibernate Envers. Из этого следует, что мы создали снимок для каждой транзакции с участием CUD.
В прошлом я реализовал решения для аудита конечных наборов важных данных для каждого из моих клиентов. По текущей работе мои вопросы:
- Есть ли смысл проверять каждую таблицу в базе данных?
- Насколько ценно было бы отслеживать данные, как это делает Энверс? Любое приложение хотело бы иметь дельты для определенных точек данных. Запросы огромных наборов данных для определения дельт кажутся нереалистичными.
- Решение, подобное Envers, требует связывания действий CUD с транзакцией, эффективно исключая триггеры. Это связано с тем, что триггеры запускаются в своих собственных транзакциях, и, следовательно, данные в теневых таблицах могут не синхронизироваться в случае отката транзакции из приложения. Что-нибудь, что мне здесь не хватает?
- Кто-нибудь предлагает использовать базы данных NoSQL для аудита?