Транзакционные таблицы никогда не должны изменяться, не быть редактируемыми и могут служить файлами журнала для информации такого типа. Создайте в своих таблицах «биллинга» метки времени, и этого будет достаточно.
Однако, если записи данных доступны для редактирования, вам необходимо отслеживать, кто изменил, что и когда. Для этого у вас есть пара вариантов.
-
Для данной таблицы вы можете иметь таблицу table_history , которая имеет почти идентичную структуру, с пустыми полями, и первичный ключ, состоящий из двух частей (первичный ключ оригинальная таблица + последовательность). Если для каждой операции вставки или обновления вы записываете запись в эту таблицу, у вас есть полный журнал всего, что произошло с таблицей .
Преимущество этого метода в том, что вы сохраняете одинаковые типы столбцов для всех регистрируемых данных, а также более эффективный запрос.
-
Кроме того, у вас может быть одна таблица журнала, в которой есть такие поля, как «таблица», «ключ», «дата», «кто», и связанная таблица, в которой хранятся измененные поля и значения.
Преимущество этого метода в том, что вы можете написать одну подпрограмму регистрации и использовать ее везде.
-
Я предлагаю вам оценить количество таблиц, потребности в производительности, изменить объем, а затем выбрать одну и пойти с ней.