Если вы используете достаточно свежую версию mySQL, я бы лично использовал триггеры .
Предполагая, что они работают более или менее так же, как те, с которыми я знаком в других продуктах (например,Oracle) ваша проблема становится проще, в том смысле, что вы помещаете триггеры «update» в строку и используете ее для обновления таблицы аудита для каждого интересующего вас поля.
Возможное предупреждение: если ваше приложение регистрирует журнална БД как на одного пользователя (например, обычный подход, если вы используете пул соединений), может быть сложно записать действительную личность пользователя.