首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >审计表设计建议

审计表设计建议
EN

Stack Overflow用户
提问于 2017-04-06 13:35:21
回答 1查看 1.8K关注 0票数 2

这是正确的做法吗?有什么建议可以让它更好吗?

  1. 下面是employee表及其阴影表的屏幕截图,其中tl_namedept字段可能会更改,目前正在使用影子表跟踪所有更改。
  2. 在主表中插入/更新记录,并借助数据宏将其复制到阴影表中。
  3. 阴影表中的所有记录都必须由超级用户批准/拒绝。
  4. 主表将具有更新的对齐方式,阴影表将包含所有员工更改的全部历史记录。
  5. 当通过userform在主表中添加/更新记录时,将在阴影表中创建一个记录副本,该副本必须得到管理员的批准。
  6. 当通过userform在主表中添加/更新记录时,is_active字段将被设置为false,并且一旦得到管理员的批准,它将被更新为true。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-11 09:35:23

据我所知,您的要求如下:

  • 更改/插入的数据应立即对每个人可见,并为未经批准的数据设置可见标志。
  • 这是合理的,如果您的工作假设,大多数更改是正确的,并将得到批准(希望是正确的;)。

我想你失踪了:

  • 如果拒绝更改,则应自动将主表中的数据恢复到最近批准的状态。
  • 否则,主表将永远处于(某种程度上)未定义的状态,存在is_active = False和(显然)错误的数据。

这可以通过您的审计表设计来完成。找到这个emp PK的最新批准条目,并使用它的数据。

但是,如果将来审计的列数可能会发生变化,您可能会考虑使用两个表的方法,如本项目中的https://autoaudit.codeplex.com/documentation

AuditHeader表 每次在为使用AutoAudit系统而设置的表中插入、更新或删除一条记录时,都会插入该表一行。 AuditDetail表 此表与AuditHeader相关,并为在插入或更新操作期间更改的每列插入一行,并在删除操作期间为每列插入一行。

如果每次更改都保存旧的+新值,则只需从当前的审核项恢复到“旧”状态。

主表的结构更改(或者如果您决定用户也可以编辑emp_name )不需要对审核表进行结构更改,因为Main中的每个已审计列都映射到AuditDetails中的一行,而不是列。

编辑:额外优势:

在示例数据中,您已将更改的值标记为红色。显然,Access表不是那样工作的。如果要保留此信息(“确切编辑了哪一列?”),则需要在“审核”表中添加一列。

这将由AuditDetail来处理,因为它包含具有旧+新值的每个更改。

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

https://stackoverflow.com/questions/43256809

复制
相关文章

相似问题

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