Встречается на 1% собеседований по Python
Как реализовано версионирование в БД
Версионирование в БД можно реализовать несколькими способами:
- Сквозное версионирование (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
интервью вопросы и ответы