Зачем хранить целые записи в таблицах аудита? - PullRequest
0 голосов
/ 14 февраля 2020

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

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

Как я видел в разных базах данных и средах, я не помещаю здесь какой-либо конкретный тег c .

Я бы с удовольствием понял обоснование такого подхода.

1 Ответ

1 голос
/ 14 февраля 2020

Вот несколько важных причин.

Во-первых, хранение становится все дешевле и дешевле. Таким образом, есть небольшое финансовое преимущество в уменьшении количества записей или их размера.

Во-вторых, «контекст» вокруг изменения может быть очень полезным. Реконструировать записи так, как они выглядят, когда происходят изменения, может быть сложно.

В-третьих, логика c для обнаружения изменений сложнее, чем кажется. Это особенно верно, когда у вас есть NULL значения. Если в коде есть ошибка, то вы потеряете архив. Целые записи менее подвержены ошибкам.

В-четвертых, помните, что (2) и (3) должны быть реализованы для каждой архивируемой таблицы, дополнительно представляя возможность ошибки.

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

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