我正在开始一个新项目,需要允许对表单进行编辑,但要跟踪原始文件以及谁进行了哪些编辑和操作(ps我将无法使用除visual studio 2010之外的任何其他软件和Microsoft SQL Server Management Studio所以没有任何意义,建议任何添加软件,这纯粹是一个代码或表设计思想的问题)。
我是一个完美主义者,我知道实现这一目标的一些可能路线可能会改变我的整体项目设计,但我不确定我对如何实现这一点的想法是否最好,所以我想听听别人的意见以最快,最有效的方式实现上述问题的想法和你自己的想法。
思路: -
我进行了设置,以便在编辑时,它会显示从文本框到单选按钮的所有现有数据范围,甚至是一些下拉菜单和它们拥有的值,然后提交它将复制原始记录通过Id进入一个实现表,创建新记录,然后从主表中删除原始文件。
我想方法在表单的任何部分添加X条评论,每条评论都有一个时间戳和win auth记录在底部的用户名。
编辑 - 我的目的是获得各种解决方案,但我想如果我能够从该项目的编辑部分开始,如果给出的单个解决方案有效,那么我将标记为正确。
答案 0 :(得分:3)
我不确定这是否是您要查找的内容但是我需要记录所有对数据的更改(出于审计原因),我实现这一点的方法是在SQL中创建一个新的“历史”表将存储记录ID的服务器,更改它的人的用户名,是否添加/修改/删除了某些内容以及何时发生这种情况等。
在我的数据库中添加/编辑/删除东西的代码中,我总是调用ObjectContext.SaveChanges(我使用Entity Framework 4),所以我实现的是这个方法的扩展,它使用ObjectStateManager的各个部分来获取有关已更改的实体所需的信息,并将详细信息插入到历史记录表中。然后,您只需要在数据库中查询此表以显示已更改内容的详细信息。