我正在创建一个制造商检查功能,制造商会创建一个记录,并由检查员进行审核。在检查员批准之前,记录创建不会发生。如果检查员拒绝它,那么它应该回滚。
我知道的想法是创建一个临时记录表,它将保存要创建的记录,直到检查员批准它为止。但是这种方法将创建2X个表来覆盖所有功能。
实现这一目标的最佳做法是什么? 是否可以使用Windows Work Flow完成。 (WWF)
答案 0 :(得分:2)
只需在数据库中添加几列。
或者,如果你有很多像这样需要制造商/检查工作流程的表,你可以添加另一个表并将所有其他记录引用到该表中。
Windows工作流基础也可以为您工作,但我很难发现它很难使用
如果您想要对recored进行修订,还需要更多列。例如Revision Number和IsLastRevision。
我不知道您使用什么来访问数据库和修改记录。如果您使用的是OR / M,则可以覆盖Update并对所有保存执行修订。例如
void Update(Entity e )
{
Entity n = new Entity();
// Create a copy of e ( With AutoMapper for example or manually )
e.Current = true;
e.RevisionNumber += 1;
Update(e);
Insert(n);
}
答案 1 :(得分:1)
在这种情况下,您将有两个选择:
创建两个相同的表,并使用一个表用于批准的数据,一个用于请求的数据。
OR
您可以为具有TypeID(已请求/已批准)的用户创建两行。在这种情况下,当批准者批准该请求时,用户将创建一个typeID = request的请求,您只需使用新请求覆盖当前批准的记录,否则只需标记被拒绝状态的请求行。