Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中跟踪更改并处理挂起的批准_Sql_Tsql_Sql Server 2008_Data Structures - Fatal编程技术网

在SQL中跟踪更改并处理挂起的批准

在SQL中跟踪更改并处理挂起的批准,sql,tsql,sql-server-2008,data-structures,Sql,Tsql,Sql Server 2008,Data Structures,我正在这个外联网旅游网站上工作,该网站允许用户更新有关其房产的信息。该网站并不太复杂,但有一件事使这个问题变得非常困难,那就是: 客户端希望用户更新他们的信息,但此类信息应保留“待批准”状态,除非外部网管理员实际批准更改。如果获得批准,该请求应在某种历史记录中存档 我试图找出一个解决方案,最终找到了可能的解决方案 -在新表中保留更改记录(requestID、requestDate、requesttype、request(将asp.net datatable存储为xml)) -将当前_行复制为新_

我正在这个外联网旅游网站上工作,该网站允许用户更新有关其房产的信息。该网站并不太复杂,但有一件事使这个问题变得非常困难,那就是:

客户端希望用户更新他们的信息,但此类信息应保留“待批准”状态,除非外部网管理员实际批准更改。如果获得批准,该请求应在某种历史记录中存档

我试图找出一个解决方案,最终找到了可能的解决方案 -在新表中保留更改记录(requestID、requestDate、requesttype、request(将asp.net datatable存储为xml)) -将当前_行复制为新_行,并在此表中添加requestID列(这可能会大幅增加此原始表的大小) -复制原始表的结构,我们将只保存挂起的请求(这也可能导致大量的表,具体取决于不同的请求类型和原始表的数量)

如果您对我的想法有任何意见,我将不胜感激

  • 您应该通过在新表中分隔来归档数据,这样可以提高查询性能。从性能的角度来看,如果它将是从未使用或很少使用的过时数据(这意味着在接受用户请求并保留其历史记录之后),则查询执行可能会非常耗时。这是因为查询也会扫描这些过时数据。 所以你应该有单独的表格来保存历史记录。因此,我将使用“在新表中保留更改记录”

  • 分区实现

  • 您应该通过在新表中分隔来归档数据,这样可以提高查询性能。从性能的角度来看,如果它将是从未使用或很少使用的过时数据(这意味着在接受用户请求并保留其历史记录之后),则查询执行可能会非常耗时。这是因为查询也会扫描这些过时数据。 所以你应该有单独的表格来保存历史记录。因此,我将使用“在新表中保留更改记录”

  • 分区实现


  • 除了添加具有挂起/批准值的状态列之外,您还需要什么?

    除了添加具有挂起/批准值的状态列之外,您还需要什么?

    我需要一次更新多行(我使用openXML),我需要存档更改以供审阅(每个更改请求都应单独查看)。一个更改/请求可能包含多行。我需要一次更新多行(我使用的是openXML),我需要归档更改以供审阅(每个更改请求都应该单独查看)。一个更改/请求可以包含多行。1。使用新表可能会有问题,因为我可能希望在请求信息中保留旧的/值。选择新表选项可能会带来许多不必要的工作。原始表结构可能发生的变化如何?2.分区实现?如果您已经存档了历史记录。那么你应该坚持这个回答。它将减少同一表中的列+记录数。如果仍然不满意,可以进行分区什么是分区实现。使用新表可能会有问题,因为我可能希望在请求信息中保留旧的/值。选择新表选项可能会带来许多不必要的工作。原始表结构可能发生的变化如何?2.分区实现?如果您已经存档了历史记录。那么你应该坚持这个回答。它将减少同一表中的列+记录数。如果仍然不满意,可以进行分区什么是分区实现?