MySQL / Java Аудит определенных полей - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть несколько таблиц, в которых может быть обновление некоторых полей.

Я бы хотел сохранить историю изменений различных полей . Однако разные поля имеют разные типы, однако я не хотел бы создавать много разных столбцов в моей таблице «аудита».

Поэтому я должен использовать сериализацию (я часто использовал ее вPHP), однако я не уверен, насколько эффективно это было бы в Java / MySQL (я не использую никаких структур данных и т. Д.).Если сериализация, то к чему?XML / JSON?

Я подумал о двух таблицах:

  • AuditEntityProperty (Id (PK), EntityId (FK), PropertyName, С, К , DateTime,Имя пользователя)
  • AuditEntity (EntityId (PK), EntityName)

From / To - мои текущие проблемы, которые я не знаю, как решить. IЯ склоняюсь к XML и использую TEXT как тип данных для обоих.Идеи?

1 Ответ

1 голос
/ 05 декабря 2011

Я бы предложил XML.

Структура моей таблицы:

Audit_id, операция, preImage, postImage, userId, datetime, entityName, отметка времени

Тогда я бы отобразил этоскажем AuditBean, я бы использовал JPA, в спящем режиме, если бы у меня была возможность использовать Spring AOP для обновления таблицы аудита при обновлении структуры таблицы.

Одна вставка таблицы, которая имела бы preImage и postImage.

Для генерации XML я думаю, что XStream является одним из самых простых в использовании.

Все таблицы, которые должны быть Audit, я бы пометил их как XMLConvertable (чтобы я мог легко получить ClassПсевдоним и другие поля псевдонимов для XStream) и Auditable (чтобы мой код AOP мог извлечь preImage из, скажем, базы данных)

...