数据库:相同或不同表中的活动和非活动数据

时间:2011-12-16 13:49:55

标签: database

我面临着为我的所有数据设置一个表格的方案 为我的活动数据创建一个表,一旦完成数据,就将其移动到存档表。

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

然而,一旦工作完成,就不需要更改,只需要搜索已完成的工作。实际上,总共会有很少的参赛作品(一年约2000张)。

如果将过去的工作保存在单独的表中,那么频繁查询活动作业的速度会提高吗?或者,为了简单起见,活动和已完成的作业是否应与完整的属性位于同一个表中?

2 个答案:

答案 0 :(得分:0)

这部分取决于您的服务器,但任何索引良好的表都应该没有问题,从每年2000个表中找出100个活动作业。我认为归档工作的开销会比你看到的任何好处都花费更多。

答案 1 :(得分:0)

通常,您描述的音量不应对您的设计起决定性作用。即使您的工作表设计为单个记录占用1 kb,该表也会以2 mb /年的速度增长。这个表需要花费很多年才能发展到会严重影响服务器整体性能的东西。

相反,正如Stuart在他的回答中所说,你应该看看维护一个历史表的工作:你需要保持两个表同步,设计明智,这样你当前表中的任何变化都不会打破历史性的桌子。您必须编写脚本来移动数据 - 如果您想查看当前和历史数据,则必须编写统一这两个表的查询。

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