Как я должен контролировать изменения в таблице MySQL (использующий MySQL 4)?

Я настоятельно рекомендую вам ознакомиться с репозиторием и шаблонами единиц работы, эти два варианта в дополнение к универсальным репозиториям делают ваш код очень четким.

Для нахождения контекста базы данных вы можете использовать этот метод.

DbSet.Find(Object[])

Подробнее об этом методе поиска.

6
задан Haabda 20 October 2008 в 15:29
поделиться

4 ответа

Единственный верный способ получить все изменения в Таблице базы данных состоит в том, чтобы использовать, включает Сервер. Риск modifing, который Ваш собственный код для аудита изменений - то, что изменения из другого приложения/пользователя и т.д. не будут получены.

Однако я не уверен, что MySQL 4 имел триггерную поддержку.

3
ответ дан 16 December 2019 в 21:48
поделиться

Используйте триггер, чтобы обнаружить изменения и записать перед/после того, как значениями в таблицу журнала.

3
ответ дан 16 December 2019 в 21:48
поделиться

Если Вы волнуете прокрутку руки решение должное отсутствие триггерной поддержки, я настоятельно рекомендую только вывести изменения в строковом блобе. Однажды Вас попросят запросить те данные, и Вы будете волновать необходимость сделать набор строкового парсинга для возвращения данных. (Я говорю на основе опыта здесь.)

Самый простой подход должен только составить теневую контрольную таблицу, которая имеет все те же столбцы как исходная таблица плюс столбец даты изменения и последовательный идентификатор. Затем у Вас есть вся история под рукой для восстановления в любом формате, в котором Вы нуждаетесь, и можно запросить его по желанию.

2
ответ дан 16 December 2019 в 21:48
поделиться

Аудит SoftTree DB имеет поддержку MySQL, мог бы сделать то, что Вы после:

http://www.softtreetech.com/idbaudit.htm

0
ответ дан 16 December 2019 в 21:48
поделиться
Другие вопросы по тегам:

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