我正在设计一个新的java应用程序,它对审计有非常严格的要求。这里有一个简短的上下文:
我有一个具有多个一对多嵌套关系的复杂实体。如果任何字段发生更改,我需要将其视为对象的新版本,并且所有这些都需要进行审计。现在我有两个选择:
1.)不要做任何更新操作,只要有任何变化就插入一个新的实体。这将要求我创建所有关系对象(即使它们没有被更改),因为我不想持有对任何以前版本对象的引用。我的数据表也变成了我的审计表。
或
2.)始终执行更新操作,并在单独的表中维护审计信息。这将在实现方面增加一些复杂性。
我想知道这两种方法中的任何一种是否有好的做法和坏的做法。
谢谢,-csn
发布于 2014-12-17 03:37:40
应该定义您的选择的是“实时”数据和审计的插入/更新/读取模式。
最常见的情况是,这两种类型的模式非常不同。
因此,随着负载和数据大小的增加,您可能需要根据用例拆分数据并优化表。
https://stackoverflow.com/questions/27511768
复制相似问题