2011-12-16 90 views
0

我面临的情况是为我的所有数据创建一个表,或者为我的活动数据创建一个表,并在数据完成后将其移至归档表。数据库:相同或单独表中的活动数据和非活动数据

要存储的数据是作业信息,其中可能有大约100个活动作业。这整个列表和所有信息经常被抓取并显示在屏幕上。随着工作进展,它也经常变化。

然而,一旦工作完成,它不需要改变,只需要搜索完成的工作。实际上,总数很少(每年约2000个)。

如果将过去的工作保存在一个单独的表格中,活动作业的频繁查询会提高速度吗?或者为了简单起见,活动和完成的工作是否应与完成的财产在同一张表中?

回答

0

它部分取决于您的服务器,但是任何索引良好的表都应该没有问题,即每年从2000个表中找出100个活动作业。我认为,归档工作的开销会比你所看到的任何收益都要高。

0

通常,您所描述的体积不应该是您设计的决定性因素。即使您的工作表是为了使单个记录占用1 kb而设计的,表格也会以2 mb /年的速度增长。这张表需要几年的时间才能发展到会严重阻碍服务器整体性能的事情。

相反,正如Stuart在他的回答中所说的那样,您应该看看维护历史性表格的工作:您需要保持两个表格同步,从设计角度来看,以便当前表格中的任何更改都不会破坏历史悠久的餐桌。你将不得不编写脚本来移动数据 - 如果你想查看当前和历史数据,你将不得不编写统一这两个表的查询。

或者,您可以添加一个位/布尔列“Active”,并根据员工的状态打开和关闭此位。或者,如果您想制作更高级的解决方案,请添加开始日期和结束日期,并以此方式构建详细的历史记录。