我的程序有一个描述生产力统计和目标的网格,每隔一段时间就有列。此数据是从Server 2005数据库中查询的,该数据库对每一行使用时间戳生成的数据行进行汇总。通常,时间间隔为1小时:
|6AM-7AM | 7AM-8AM | 8AM-9AM |
Units Produced | 25 | 27 | 24 |
Unit Goal | 26 | 26 | 26 |但是,在预期生产力为零的中断期间,用户希望在前一时间间隔中包括中断期,同时保持目标数量。
例如,30分钟的用餐休息时间:
|6AM-7AM | 7AM-8AM | 8AM-9AM | 9AM-10:30AM | 10:30AM-11:30AM |
Units Produced | 25 | 27 | 24 | 26 | 21 |
Unit Goal | 26 | 26 | 26 | 26 | 26 |两次15分钟的休息时间也将贯穿整个8.5小时的一整天( 7.5个工作小时)。
我目前的实现硬编码这些小时范围值在他们自己的表上,但这不允许在休息时间容易变化。“妨碍”的目标值是不可接受的,根据用户的要求(这是我的第一次设计)。
应该在数据库层或应用程序层上处理这一问题,实现的最佳模式是什么?
发布于 2014-03-17 21:45:08
最后,我以存储过程和硬编码表的形式在数据库层中处理这个问题。
我首先询问一天的开始时间和结束时间作为一个整体(即上午9点至下午5点)。然后,我从硬编码表中查询每一行一小时的特定时间间隔,作为每个段的开始和结束时间。接下来,我得到时间戳之间的生产力计数,并将这两个时间戳格式化为一个范围标签(一列为varchar,'8AM-9AM')以显示在图形上。
它不是非常优雅,但对我来说很管用。
https://stackoverflow.com/questions/21616979
复制相似问题