1

我正在运行一个计划任务,它每晚在设定的时间检查属性的值。我的计划是根据返回的值构建一个前端。

目前,由于要返回的数据量如此之大,我每晚要在数据库中返回 800 多行。

其中一列是查询运行的日期——令我震惊的是,这是多余的,因为对于每组属性(即每晚运行计划任务),这个 dateTime 值将是相同的。

从我的数据库中删除这个冗余/重复日期的最佳方法是什么?

目前我有以下标题:

Id -- Name -- AttributeIMeasure -- dateRan

谢谢您的帮助!

4

2 回答 2

3

我很想创建一个单独的表,RunInformation,一个主键列Id, 和一个RunDate列:

Id -- RunDate

dateRan然后,您可以将表中的列替换为对该表的引用RunInformation。如果需要,这将允许您在将来存储有关运行的其他信息。

Id -- Name -- AttributeIMeasure -- RunInformationId
于 2012-04-24T11:00:44.527 回答
2

我不会删除这种冗余。

你能确定你永远不会只更新组的一部分吗?
- 某种失败或错误?
- 未来要求的变化?

另外,冗余的真正缺点是什么?您要解决什么实际问题?


如果您确实需要这样做,那么您只需要一种将属性映射到组的方法。

创建一个attribute_groups表(至少包含 id 和 dateRan 字段),并attributeGroupID在原始表中添加一个字段。


但是在这种情况下,我仍然看不到架构复杂性的增加、获取 DateRan 值所需的额外连接以及增加的约束是如何值得的。

于 2012-04-24T11:04:05.837 回答