【发布时间】:2017-04-06 13:35:21
【问题描述】:
这是正确的方法吗?有什么建议可以让它变得更好吗?
下面是员工表及其影子表的屏幕截图,其中
tl_name和dept字段可能会更改,目前使用影子表来跟踪所有更改。记录在主表中插入/更新,并在数据宏的帮助下复制到影子表中。
影子表中的所有记录都必须由超级用户批准/拒绝
主表将更新对齐方式,影子表将包含任何员工的完整更改历史记录。
当通过用户表单在主表中添加/更新记录时,将在影子表中创建记录副本,该副本必须由管理员批准。
当通过用户表单在主表中添加/更新记录时,
is_active字段将设置为 false,一旦获得管理员批准,该字段将更新为 true。
【问题讨论】:
-
你想达到什么水平的标准化?
-
只是好奇:为什么会有人想要批准审计日志?如果你想阻止,你应该阻止用户编辑主表。审计表的最懒惰的方法是使用表触发器。审核表包含所有字段 + 操作、操作依据、操作日期。使用更新事件之前和之后捕获整行。
-
@krishKM 所有更改都必须由超级用户批准,因为每个人都可以自行编辑对齐(这是业务要求)。目前我正在使用表触发器(更改前,更新后)来捕获整行。
-
我不懂你的业务逻辑。 每个人都可以编辑主表和所有更改都必须经过批准似乎是一个奇怪的组合。如果更改被拒绝会怎样?
-
因此,被拒绝的更改将与更改的数据和
is_active = False一起永远保持可见?这不可能。我有一种感觉,这并没有真正经过深思熟虑。 -- 请使用正确的数据更新屏幕截图以避免混淆,谢谢。
标签: ms-access database-design ms-access-2010 audit-trail changelog