首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在已审核表中进行批量更改?

问如何在已审核表中进行批量更改?
EN

Stack Overflow用户
提问于 2012-02-27 17:41:58
回答 2查看 119关注 0票数 0

我有一个系统,在这个系统中,对业务对象的所有更改都必须进行审计。因此,实体MyEntity具有一个Number属性,当您更改此字段时,系统将保留原始记录,并使用新的数字值创建另一条记录,并将原始记录存档。Number是而不是主键。还有一个Version字段来跟踪实体的每个版本,还有一个Id字段来跟踪跨多个版本的对象标识。到目前一切尚好。

如果删除实体,系统不会删除记录,而只是将其标记为已删除。到目前一切尚好。

问题出在这里。现在,客户端在列表中有一组实体,并且可能存在空白:

代码语言:javascript
复制
Item 1
Item 2
Item 3
Item 5
Item 6
...
Item 10

他们希望能够做两件新的事情:

  1. Insert一个编号为5的项目,并将所有后续项目向上移动一个数字(5 -> 6,6->7 etc)
  2. Collapse间隙,例如,重编号5 --> 4 ),并将所有后续项目移到一个数字上。

这对我来说很讨厌,因为通常情况下,任何对一个数字的更改都需要被审计,所以我不能就这样大批量地改变所有的数字。(这甚至更复杂,因为每个更改都需要由主管批准,并且更改可以恢复到以前的审计状态。)

更糟糕的是,第4项可能存在,但由于它处于存档状态而丢失。如果要折叠后续项,那么现有的归档项应该发生什么情况?我无法找到一种合理的方法来处理这些情况,同时对它们进行审核,并允许批准和恢复。有人知道怎么处理这事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-03 15:13:00

我从未真正以一种完全令人满意的方式解决过这个问题,但我们通过实现一种特殊的模式来解决这个问题,这种模式仅适用于超级管理员,在这种模式下,对这种身份更改操作禁用审计,理由是Number (虽然不是主键)是一个基本的用户键,如果您更改它,您将对象标识更改为一个新的东西,它以干净的标记开始。不是理想,而是合理的妥协。

票数 0
EN

Stack Overflow用户

发布于 2012-02-27 21:55:52

我有一个系统,在这个系统中,对业务对象的所有更改都必须进行审计。

尝试为Number属性建议此规则的异常。如果该属性还由于其他原因而被使用,并且无论如何都必须进行审核,那么您可以建议一个新的字段OrderByNumber,并使它不受审计要求的影响。

如果你的论点遭到反对,我会尝试将数字或OrderByNumber重命名为荒谬而明显的东西。它会让人们微笑,他们会明白其中的要点:NotABusinessConcernNumberButUIElementNumberUsedForVisualOrdering.

如果您不可能对业务对象的审计规则有异常,那么您就必须创建一个不同的UI/表示对象层,并在这两者之间保持一个映射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9469562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档