Мне нужно настроить функцию истории в проекте, чтобы отслеживать предыдущие изменения.
Допустим, у меня есть две таблицы прямо сейчас:
NOTES TABLE (id, userid, submissionid, message)
SUBMISSIONS TABLE (id, name, userid, filepath)
Пример: у меня есть строка в заметках, и пользователь хочет изменить сообщение. Я хочу отслеживать его состояние до изменения и после изменения.
Каков наилучший подход к настройке столбца в каждой из этих таблиц, в котором будет указано, является ли элемент «старым». 0, если активен, ИЛИ 1, если удален / невидим.
Я также хочу создать AUDIT TRAIL
таблицу history ( ), которая содержит id
предыдущее состояние, id
новое состояние, к какой таблице относятся эти идентификаторы?
mysql
database-design
audit
Schwarz
источник
источник
Ответы:
Пожалуйста, просмотрите
http://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database
Это очень хорошая статья о подходах к созданию контрольного журнала в вашей базе данных. Контрольные записи необходимы для реализации базы данных. Вы всегда должны видеть действия пользователей базы данных в системе.
Мы можем отслеживать, какие строки были изменены в нашей системе PTA (Point in Time), добавив некоторые стандартные столбцы PTA (point in time) во все таблицы, представляющие интерес для PTA.
Я предлагаю следующее:
источник
При разработке возможностей управления версиями в ваших данных, существует несколько минимальных (я бы подумал) требований:
Вот слайды презентации, которую я несколько раз делал на технических ярмарках. Он охватывает, как все вышеперечисленное может быть сделано. И вот документ, который идет в более подробно. Я должен принести извинения за документ - это работа, и не все разделы заполнены. Но он должен дать вам всю информацию, необходимую для реализации чего-либо, от простого управления версиями до полного двунаправленного доступа.
источник
This means no flag or other indicator showing which is the current version and which are "history."
, если нет флага или индикатора, как мы отличаем текущую версию от версии истории? Особенно исходя из вашего третьего пункта, который, как вы предлагаете, должен быть в одной таблице.