Я решил создать новую таблицу в моей базе данных, которая будет использоваться для аудита всех действий, выполняемых над моей базой данных.
Моя таблица "активность" довольно проста и содержитследующие столбцы:
- activity_id - первичный ключ
- user_id - внешний ключ пользователя
- action - тип выполняемого запроса (SELECT, UPDATE, DELETE)
- таблица - имя затронутой таблицы
- строка - имя затронутой строки (ей)
Что я делаю в данный момент, когда выполняется запрос Iзатем есть другой запрос, который вставляет информацию в мою "активность" таблицу.
КОД:
//query
$db->query("DELETE FROM foo WHERE id = '$foo->id'");
//activity record query
$db->query("INSERT INTO acitivity ( user_id, action, table, row ) VALUES ('$user->id', 'Deleted' , '$foo->id', 'foo')");
Как вы можете видеть, ямне приходится делать это вручную для каждого запроса, и у меня в системе более 100 запросов, и я действительно не хочу набирать отдельный запрос, чтобы записать, что происходит.
Мне было интересно, есть ли какие-либо функциив MySQL, который может сказать мне, какие действия были выполненыd или есть какие-нибудь библиотеки или методики в PHP, которые могут мне помочь?
Или я обречен выписать 100 отдельных запросов в моей системе?
Спасибо