Лучшие практики для системы контроля версий данных MySQL
Я должен хранить данные, такие как статьи, в базе данных mysql, и если статья модифицируется, я должен также сохранить старую версию, чтобы можно было ее восстановить. Я нашел несколько похожих вопросов и сообщений на эту тему, но я не уверен, какое решение является лучшим для решения проблемы.
Вот основная таблица «статей» для лучшего понимания:
статьи (идентификатор, имя, текст)
Для меня есть два разных подхода к этому:
Подход 1Сохраните данные и каждую версию статьи в таблице «статьи» и добавьте столбцы «версия» и «статус». В версии я храню увеличенный номер версии статьи. Активная статья получает статус «1», а остальные «статус» 2.
Pro-х:
Нужен только один стол
Новая версия - это вставка новых данных и только обновление столбца «status» старой
Con-х
Очень большие таблицы (возможно, более медленные запросы ???)Подход 2Добавьте поле «версия» в «статьи» и сохраните только активные данные в таблицу «статьи». Старые версии данных хранятся / перемещаются в новую таблицу «article_versioned».
Pro-х:
Только фактические действительные данные находятся в таблице «статьи»Con-х
Дублирование таблицТак. Я забыл хороший подход? Как работать со связанными данными в других таблицах (например, изображения и т. Д.)?