我有几个表可以更新某些字段。
我想保留不同领域的变化历史。 不同的字段具有不同的类型,但我不想在“审核”表中创建许多不同的列。
所以我虽然应该使用序列化(我经常在 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/