我想捕获可审计字段以跟踪特定实体发生的事情是一个好习惯(比如 createdBy、creationDate、modifiedBy、modifiedDate)
我假设如果一个对象从未被修改过,那么只为 SNMPv3 事件捕获以下可审计字段是有意义的(比如 createdBy、creationDate)
我假设如果一个对象可以由多人在创建后修改,例如用户配置文件可以由自己或管理员修改,那么捕获所有上述属性(例如 createdBy、creationDate、modifiedBy、modifiedDate)是有意义的
假设不需要每个实体的审计跟踪历史,将所有可审计属性存储在实体本身中是否有意义
对于上述用例,将审计委托给第三方框架(比如 JBoss Envers - http://www.jboss.org/envers )是否有意义。
假设一个实体(比如采购订单)由用户 X 创建和维护,用户 Y 对上述采购订单进行了一些改进。谁应该被标记为该实体的所有者(是创建者还是修改者)。在这种情况下,creationDate 可能根本没有任何相关性,因此在此处跟踪该字段是否有意义。
注:底层持久层基于JPA,Hibernate 3.3.x