Встречается на собеседованиях • сегодня
Как реализовано версионирование в БД
Версионирование в БД можно реализовать несколькими способами:
- Сквозное версионирование (append-only):
Каждое изменение создает новую запись с меткой времени/версии, а не обновляет существующую.sqlCREATE TABLE documents ( id INT, version INT, content TEXT, modified_at TIMESTAMP, PRIMARY KEY (id, version) );
-
История изменений в отдельной таблице:
Основная таблица хранит актуальные данные, а связанная таблица — историю.python# Пример триггера на обновление def save_history(old_data): history_table.insert( original_id=old_data.id, version=old_data.version + 1, snapshot=old_data.to_json() ) -
Использование временных меток:
PostgreSQL, Oracle и др. поддерживают временные таблицы (Temporal Tables) с автоматическим управлением версиями. -
Оптимистичная блокировка:
Добавляем полеversionи проверяем его при обновлении:sqlUPDATE table SET data = 'new', version = version + 1 WHERE id = 123 AND version = 5;
Ключевые аспекты:
- Хранение полной истории vs дельта-изменений
- Производительность (индексы по версиям)
- Очистка устаревших данных (TTL, архивные таблицы)

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы