Как к управлению версиями данные хранятся в mysql

Я пытаюсь использовать простую mysql базу данных, но настраивать его так, чтобы каждое поле было сохранено до неопределенного количества версий. Лучшим способом я могу проиллюстрировать, что это путем замены каждого поля каждой таблицы со стопкой всех значений, которые это поле когда-либо имело (к каждому из этих значений нужно добавить метку времени). Я предполагаю, что это отчасти похоже на имеющий контроль настроенной версией для всех моих данных..

Какие-либо идеи о том, как сделать это?

7
задан Shawn 1 May 2010 в 22:52
поделиться

3 ответа

Обычным методом «отслеживания любых изменений» в таблице является добавление процедур запуска вставки / обновления / удаления в таблицу и сохранение этих записей в таблице истории.

Например, если ваша основная таблица данных - «ItemInfo», тогда у вас также будет таблица ItemInfo_History, которая получает копию новой записи каждый раз, когда что-либо изменяется (через триггеры).

Это поддерживает согласованность производительности вашей основной таблицы, но при этом дает вам доступ к истории любых изменений, если она вам нужна.

Вот несколько примеров, они предназначены для SQL Server, но они демонстрируют логику:

Моя таблица репозитория Моя таблица истории репозитория {{1} } Моя процедура триггера вставки репозитория Моя процедура триггера обновления репозитория

8
ответ дан 6 December 2019 в 23:02
поделиться

Хм, то, о чем вы говорите, похоже на Медленно меняющееся измерение .

Имейте в виду, что контроль версий в произвольных структурах базы данных официально является довольно сложной проблемой. : -)

3
ответ дан 6 December 2019 в 23:02
поделиться

Простым решением было бы добавить поле версии/пересмотра в таблицы, и всякий раз, когда запись обновляется, вместо того, чтобы обновлять ее на месте, вставлять копию с внесенными изменениями и увеличенным номером версии. Тогда при выборе всегда выбирается запись с последней версией. Примерно так реализовано большинство подобных схем (например, Викимедиа делает это практически так же).

1
ответ дан 6 December 2019 в 23:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: