【问题标题】:Best way to implement form editing and auditing all edits?实现表单编辑和审核所有编辑的最佳方式?
【发布时间】:2011-06-11 15:49:39
【问题描述】:

我正在开始一个新项目,该项目需要允许对表单进行编辑,但要跟踪原始项目以及谁做了哪些编辑以及在哪里进行了编辑(ps 除了 Visual Studio 2010 之外,我无法使用任何额外的软件和 Microsoft SQL Server Management Studio,所以没有必要建议任何附加软件,这纯粹是一个代码或表格设计问题)。

我是一个完美主义者,我知道实现这一目标的一些可能途径可能会改变我的整体项目设计,但我不确定我对如何实现这一点的想法是否最好,所以我想听听其他人的意见下面的想法和你自己的想法关于解决上述问题的最快最有效的方法。

想法:-

  1. 我会设置它,这样当他们编辑它时,它会显示所有现有的数据范围,从文本框到单选按钮,甚至一些下拉菜单以及他们拥有的值,然后在提交时它会复制原始记录通过Id进入一个实现表,创建新记录然后从主表中删除原来的记录。

  2. 我想办法将 X 数量的 cmets 添加到表单的任何部分,每个部分都会在底部记录来自 win auth 的时间戳和用户名。

编辑 - 我的目的是获得各种解决方案,但我想一旦我能够开始编辑这个项目的部分,如果给出的单一解决方案有效,那么我会标记为正确的。

【问题讨论】:

  • 我几乎无法理解你的想法。
  • @Darin Dimitrov:你到底有什么问题?
  • @Myzifer,例如以下短语:跟踪原件以及谁做了哪些编辑以及在哪里进行了编辑。您谈论,但没有解释您的网站使用哪种身份验证(如果有)、如何跟踪用户、您想在哪里跟踪原始记录?
  • @Darin Dimitrov:实际上我在我的第二个想法中确实提到了我如何跟踪使用 win auth 的用户以及关于原始井的用户,我认为很明显我希望它被存储在数据库中,但我没有详细说明,因为其他人的想法是将原始和旧编辑粘贴到实现表中还是将原始编辑保留在主表中但有一个编辑表来存储所有已完成的编辑。
  • 还有其他解决方案吗?

标签: c# sql-server asp.net-mvc asp.net-mvc-2 audit


【解决方案1】:

我不确定这是否是您要查找的内容,但我需要记录对数据的所有更改(出于审核原因),我实现此功能的方式是在 SQL 中创建一个新的“历史”表服务器将存储记录 ID、更改者的用户名、他们是否添加/修改/删除某些内容以及何时发生等。

在我的数据库中添加/编辑/删除内容的代码中,我总是调用 ObjectContext.SaveChanges(我使用 Entity Framework 4),所以我实现的是这个方法的扩展,它使用 ObjectStateManager 的各个部分来获取已更改的实体所需的信息,并将详细信息插入历史记录表。然后,您只需在数据库中查询此表即可显示更改的详细信息。

【讨论】:

  • 此链接使用实体框架更详细地解释它:codeproject.com/KB/database/ImplAudingTrailUsingEFP1.aspx
  • 这似乎涵盖了我的要求我只是不确定我是否能够使用它,因为它使用了 XML,但至少它似乎清楚地解释了这些步骤它需要,我现在标记它,因为它是一个可能的解决方案。
猜你喜欢
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
相关资源
最近更新 更多