工作时间保持申请

时间:2017-04-13 09:41:18

标签: c# sql asp.net

我正在尝试为员工创建一个时间保持应用程序。我只是想知道最好的方法是什么。创建一个包含所有日期的表,每月一次并处理它们,或者只存储不同的日期。

正常时间表应该是每天周一到周五8小时,但可能会有少于8小时或更长时间的情况,加上星期六和星期日应该区别对待,此外所有这些数据都需要存储它这不是一次性的事情。 我的难题是我无法找到特定表格的最佳解决方案。我应该只存储少于8个或更多的特殊事件等等......此外,应用程序应考虑国家法定假日...

asp.net应用程序c#如果它有帮助,sql和所有那些爵士乐。

2 个答案:

答案 0 :(得分:1)

几年前,我正在创建这样一个应用程序。 我在数据库中有一个用作日历的表。它有像:

这样的字段
  • 日期
  • day_name(星期一,星期二等)
  • is_holiday(这一天是假期 - 那天人们是否工作 - 周日也将此标志设置为true)
  • is_sathurday
  • is_sunday

还有更多,但我不记得了。这是非常好的解决方案。您不仅知道假期何时或员工是否在周日工作,还可以为员工建立日历。

在安装过程中插入表(通过存储过程),使用 - 据我记忆 - 高斯算法。

截止日期是2030年或2040年。

答案 1 :(得分:1)

假设您更有可能感兴趣/使用当前数据,并且只对较旧的内容感兴趣以进行审核/偶尔使用,我会选择一个表来获取当前数据&#34 ;所有员工的数据集,以及"历史"数据集。

每个表都有对员工的引用,以及开始日期时间和结束日期时间,也许还有"任务"他们会记录时间(例如假期,疾病,公共假期,项目a,项目b等)。

当你到达月末,数据变为“锁定”时,你可以将它从当前表处理到历史表中并随心所欲。

这样,您可以将当前表格保持为所需的最小数据,同时保留旧数据的历史记录。

您可以查看使用SQL CDC及其保留政策来执行此操作并清除您不想要的数据。

或者你可以通过job / c#通过代码在SQL中自己完成。

当然,我们在公司使用的企业级时间管理项目似乎有效:)

存储日历等问题是,您有效地构建了大量可能无法为所有员工工作的数据。 您需要为这些边缘情况创建单独的日历。您还必须提前几年填写它/确保在需要之前将其填入下一年。 同样,如果公司决定在短时间内关闭一两天,会发生什么?让我们说你在浴室里找到了石棉,所以他们必须关闭办公室(或者办公室的HALF)一天。您需要更新日历表以反映这一点,否则您当天就会对每个人都有例外情况。