Drakon
Новичок
История редактирования БД с возможностью отмены действий
Есть БД примерно из 20-ти таблиц InnoDB с заданными Foreign Keys.
На БД задан определённый список штатных операций: добавление/удаление/редактирование (Add/Delete/Modify = ADM) компаний, ADM торговых точек для компаний и т. д. Сейчас эти операции реализованы на уровне PHP (т. е. ни одной функции не определено в БД).
Необходимо создать историю редактирования БД по каждой операции с возможностью отмены результатов работы операции...
Даже не знаю с какой стороны подойти...
Пока что вижу такой путь: создаю 2 таблицы, которые будут хранить все проделанные операции.
1-ая таблица: лог составных операций (например удаление компании - это составная операция, т. к. в результате удаляется компания, привязка компании к рубрикатору, торговые точки компании), т. е. составная операция производится над несколькими таблицами
2-ая таблица: атомарные операции (над одной таблицей)
- ID составной операции
- тип операции (Add/Delete/Modify)
- ID объекта операции
- имя таблица, в которой производится операция
- старые значения полей
- новые значения полей
- список изменённых полей
Возможно есть какие-то готовые решения подобных проблем?
Есть БД примерно из 20-ти таблиц InnoDB с заданными Foreign Keys.
На БД задан определённый список штатных операций: добавление/удаление/редактирование (Add/Delete/Modify = ADM) компаний, ADM торговых точек для компаний и т. д. Сейчас эти операции реализованы на уровне PHP (т. е. ни одной функции не определено в БД).
Необходимо создать историю редактирования БД по каждой операции с возможностью отмены результатов работы операции...
Даже не знаю с какой стороны подойти...
Пока что вижу такой путь: создаю 2 таблицы, которые будут хранить все проделанные операции.
1-ая таблица: лог составных операций (например удаление компании - это составная операция, т. к. в результате удаляется компания, привязка компании к рубрикатору, торговые точки компании), т. е. составная операция производится над несколькими таблицами
2-ая таблица: атомарные операции (над одной таблицей)
- ID составной операции
- тип операции (Add/Delete/Modify)
- ID объекта операции
- имя таблица, в которой производится операция
- старые значения полей
- новые значения полей
- список изменённых полей
Возможно есть какие-то готовые решения подобных проблем?