Как сделать версионность как на вики?

Всем привет!
Есть некая база(бухгалтерская) с кучей полей.
Нужно каким-то образом сделать для нее версионность как на вики.
То есть если пользователь поменял 2 поля, то в истории должно быть видно какие именно и с какого значения на какое.
Подскажите, есть-ли что-то готовое?
Спасибо!
  • Вопрос задан
  • 1087 просмотров
Пригласить эксперта
Ответы на вопрос 4
AlexXYZ
@AlexXYZ
O Keep Clear O
Не работал с бухгалтерскими базами, но для своей базы MySQL хранение истории изменений использую JSON. Есть отдельная таблица history с полями - table_name, table_id и history (JSON) с данными типа массив [], в который добавляются записи формата JSON, за которыми производится наблюдение. На пользовательской таблице висят триггеры на добавление, изменение, удаление. Как только в пользовательской таблице производятся изменения, то триггеры записывают изменения в таблицу history. Это позволяет отслеживать всю историю работы с записью от момента создания, до удаления не вставляя код во всякие процедуры или бизнеслогику, а работая абстрактно только средствами базы.
Ответ написан
Комментировать
@apro
Вот так можно сделать для postgresql: https://wiki.postgresql.org/wiki/Audit_trigger
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Сделайте таблицу history
id | article_id | old | changes
в changes записывайте новое в old старое, писать можно строкой json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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