Какие есть способы ведения истории изменений данных в базе? Например, как сохранить смену фамилии пользователя?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Для смены фамилии подходит SCD Type 2: старая версия закрывается датой окончания, новая получает новую дату начала. SCD Type 1 просто перезаписывает значение и историю не сохраняет. Для исправления ошибки и реального изменения могут требоваться разные правила, поэтому семантику согласуют заранее.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку