我有几张表可能会对某些字段进行更新。
我想保留不同领域的变化历史。 不同的字段有不同的类型,但我不想在“审核”表格中创建许多不同的列。
所以我虽然应该使用序列化(我经常在PHP中使用它),但我不确定它在Java / MySQL中的效率如何(我没有使用任何数据框架等)。如果序列化,那么到底是什么? XML / JSON?
我想到了两张桌子:
From / To是我当前遇到的问题,我不知道如何处理。 我倾向于XML并使用TEXT作为两者的数据类型。想法?
答案 0 :(得分:1)
我建议使用XML。
我的表结构:
Audit_id,operation,preImage,postImage,userId,datetime,entityName,timestamp
然后我会将此映射为一个AuditBean,我会使用JPA,如果我有一个选项,则使用Hibernate,使用Spring AOP在更新表结构时更新审计表。
一个表插入,它将具有preImage和postImage。
对于XML生成,我认为XStream是最容易使用的之一。
所有需要审核的表,我都会将它们标记为XMLConvertable(这样我可以很容易地获得Class Alias,以及XStream的其他别名字段)和Auditable(这样我的AOP代码可以从中提取preImage)数据库)