java - MySQL/Java特定字段审计

标签 java mysql auditing

我有几个表可以更新某些字段。

我想保留不同领域的变化历史不同的字段具有不同的类型,但我不想在“审核”表中创建许多不同的列。

所以我虽然应该使用序列化(我经常在 PHP 中使用它),但我不确定它在 Java/MySQL 中的效率如何(我没有使用任何数据框架等)。如果序列化,那么序列化是什么? XML/JSON?

我想到了两个表:

  • AuditEntityProperty(Id (PK)、EntityId (FK)、PropertyName、从、到、日期时间、用户名)
  • AuditEntity(EntityId (PK)、EntityName)

从/到是我当前不确定如何解决的问题。 我倾向于 XML 并使用 TEXT 作为两者的数据类型。有想法吗?

最佳答案

我建议使用 XML。

我的表结构:

Audit_id、操作、preImage、postImage、userId、日期时间、entityName、时间戳

然后我会将其映射为 AuditBean,如果我可以选择在表结构更新时使用 Spring AOP 更新审计表,我会使用 JPA、hibernate。

一个表插入,其中包含 preImage 和 postImage。

对于 XML 生成,我认为 XStream 是最容易使用的之一。

所有需要审核的表,我都会将它们标记为 XMLConvertable(以便我可以轻松获取类别名和 XStream 的其他别名字段)和 Auditable(以便我的 AOP 代码可以从中提取 preImage)数据库)

关于java - MySQL/Java特定字段审计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381886/

相关文章:

java - Json 忽略类名而不是属性

mysql - 防止 MySQL 中 JSON 数组重复

java - 如何将字节从 bytesource 复制到 bytesink

java - Web 服务中的问题

php - mysql/php 如果值为空则忽略设置

git - 删除git分支会失去审核

oracle - "audit create session by session"与 "audit create session by access"?

node.js - npm 审计与 yarn 审计

java - org.glassfish.grizzly.http.ajp.AjpHandlerFilter.encodeHttpPacket(AjpHandlerFilter.java :282) when using Apache as load balancer for GF 5

mysql - 谷歌图表不画