我正在尝试为员工创建一个时间保持应用程序。我只是想知道最好的方法是什么。创建一个包含所有日期的表,每月一次并处理它们,或者只存储不同的日期。
正常时间表应该是每天周一到周五8小时,但可能会有少于8小时或更长时间的情况,加上星期六和星期日应该区别对待,此外所有这些数据都需要存储它这不是一次性的事情。 我的难题是我无法找到特定表格的最佳解决方案。我应该只存储少于8个或更多的特殊事件等等......此外,应用程序应考虑国家法定假日...
asp.net应用程序c#如果它有帮助,sql和所有那些爵士乐。
答案 0 :(得分:1)
还有更多,但我不记得了。这是非常好的解决方案。您不仅知道假期何时或员工是否在周日工作,还可以为员工建立日历。
在安装过程中插入表(通过存储过程),使用 - 据我记忆 - 高斯算法。
截止日期是2030年或2040年。
答案 1 :(得分:1)
假设您更有可能感兴趣/使用当前数据,并且只对较旧的内容感兴趣以进行审核/偶尔使用,我会选择一个表来获取当前数据&#34 ;所有员工的数据集,以及"历史"数据集。
每个表都有对员工的引用,以及开始日期时间和结束日期时间,也许还有"任务"他们会记录时间(例如假期,疾病,公共假期,项目a,项目b等)。
当你到达月末,数据变为“锁定”时,你可以将它从当前表处理到历史表中并随心所欲。
这样,您可以将当前表格保持为所需的最小数据,同时保留旧数据的历史记录。
您可以查看使用SQL CDC及其保留政策来执行此操作并清除您不想要的数据。
或者你可以通过job / c#通过代码在SQL中自己完成。
当然,我们在公司使用的企业级时间管理项目似乎有效:)
存储日历等问题是,您有效地构建了大量可能无法为所有员工工作的数据。 您需要为这些边缘情况创建单独的日历。您还必须提前几年填写它/确保在需要之前将其填入下一年。 同样,如果公司决定在短时间内关闭一两天,会发生什么?让我们说你在浴室里找到了石棉,所以他们必须关闭办公室(或者办公室的HALF)一天。您需要更新日历表以反映这一点,否则您当天就会对每个人都有例外情况。