跟踪更改并处理SQL中待审批的项目

问题描述

| 我正在这个Extranet旅游站点上工作,该站点允许用户更新有关其属性的信息。该站点不是太复杂,但是使此问题极其困难的一件事是: 客户希望用户更新其信息,但是这些信息应保留为“待批准”状态,这是Extranet管理员实际批准更改的结果。如果批准,则此请求应保存在某种历史中。 我试图找出一个解决方案,并最终提出可能的解决方案 -将更改记录保存在新表中(requestID,requestDate,requesttype,request(将asp.net数据表存储为xml)) -将current_row记录复制为new_row并在此表中添加requestID列(这可能会大大增加此原始表的大小) -复制原始表的结构,在该结构中,我们将仅保留待处理的请求(这也可能导致表数量众多,具体取决于不同的请求类型和原始表的数量) 希望对我的想法发表任何评论。     

解决方法

除了添加带有待定/已批准值的状态列之外,您还需要什么?     ,您应该通过这样做将新表分开来归档数据,这样可以提高查询性能。从性能的角度来看,如果将要使用或从未使用过的过时数据(这意味着在接受用户请求并保留其历史记录之后),那么查询执行将非常耗时。这是因为查询还会扫描此过时的数据。 因此,您应该具有用于​​保留历史记录的单独表。因此,我将继续使用“在新表中保留更改记录” 分区实施。请参阅本文以获取有关分区的更多信息