问题描述
|
我正在这个Extranet旅游站点上工作,该站点允许用户更新有关其属性的信息。该站点不是太复杂,但是使此问题极其困难的一件事是:
客户希望用户更新其信息,但是这些信息应保留为“待批准”状态,这是Extranet管理员实际批准更改的结果。如果批准,则此请求应保存在某种历史中。
我试图找出一个解决方案,并最终提出可能的解决方案
-将更改记录保存在新表中(requestID,requestDate,requesttype,request(将asp.net数据表存储为xml))
-将current_row记录复制为new_row并在此表中添加requestID列(这可能会大大增加此原始表的大小)
-复制原始表的结构,在该结构中,我们将仅保留待处理的请求(这也可能导致表数量众多,具体取决于不同的请求类型和原始表的数量)
希望对我的想法发表任何评论。
解决方法
除了添加带有待定/已批准值的状态列之外,您还需要什么?
,您应该通过这样做将新表分开来归档数据,这样可以提高查询性能。从性能的角度来看,如果将要使用或从未使用过的过时数据(这意味着在接受用户请求并保留其历史记录之后),那么查询执行将非常耗时。这是因为查询还会扫描此过时的数据。
因此,您应该具有用于保留历史记录的单独表。因此,我将继续使用“在新表中保留更改记录”
分区实施。请参阅本文以获取有关分区的更多信息