Вот несколько важных причин.
Во-первых, хранение становится все дешевле и дешевле. Таким образом, есть небольшое финансовое преимущество в уменьшении количества записей или их размера.
Во-вторых, «контекст» вокруг изменения может быть очень полезным. Реконструировать записи так, как они выглядят, когда происходят изменения, может быть сложно.
В-третьих, логика c для обнаружения изменений сложнее, чем кажется. Это особенно верно, когда у вас есть NULL
значения. Если в коде есть ошибка, то вы потеряете архив. Целые записи менее подвержены ошибкам.
В-четвертых, помните, что (2) и (3) должны быть реализованы для каждой архивируемой таблицы, дополнительно представляя возможность ошибки.
Я мог бы обобщить это как высказывание, что хранение всего запись использует меньше строк кода. Меньшее количество строк кода проще в обслуживании и менее подвержено ошибкам. И эта экономия перевешивает выгоды от уменьшения размера архива.