0

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

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

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

我想到了两张表:

  • AuditEntityProperty(Id (PK)、EntityId (FK)、PropertyName、From、To、DateTime、用户名)
  • AuditEntity (EntityId (PK), EntityName)

From/To 是我目前不知道如何解决的问题。 我倾向于 XML 并使用 TEXT 作为两者的数据类型。想法?

4

1 回答 1

1

我建议使用 XML。

我的表结构:

Audit_id, operation, preImage, postImage, userId, datetime, entityName, timestamp

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

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

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

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

于 2011-12-05T07:00:27.753 回答