目前,我有一个大型实体数据模型(.edmx),下面有一个数据库。现在我想让使用我网站的人选择编辑这些实体,但只有在我批准更改之后才会这样做。
所以这意味着我想要“改变”实体但是还没有真正保存它,在我接受改变之后它将覆盖改变的实体。但是当我这样做时,我仍然希望能够在之后回滚更改。
现在我想出了一些解决方案:
1)创建一个类似的实体:[ID],[ChangeApplyDate] [ChangeApproveDate] [更改前的实体] [更改后的实体] [接受(布尔)]
2)使用更改的值和“原始”实体的链接创建一个额外的实体,并且如果它是当前批准的实体,则在该实体中具有布尔值。 (这不会创建一个新表,而是扩展表格,如“Book”,还有一些额外的属性。
现在我想知道你对这些解决方案的看法,以及你是否做过这样的事情?
答案 0 :(得分:0)
这里有两件事:
保留所有先前版本的列表。看看我对这个问题的回答:Ideas on database design for capturing audit trails
控制接受更改。为此,您可以为每个表添加一个批准标记,只有您有权访问。