Office中国论坛/Access中国论坛
标题:
【Access小品】眼见为虚--排班管理示例
[打印本页]
作者:
todaynew
时间:
2015-1-15 17:12
标题:
【Access小品】眼见为虚--排班管理示例
本帖最后由 todaynew 于 2015-1-15 17:19 编辑
有个成语叫做眼见为实,这说明在人的所有感觉器官中,人们最为信赖的是视觉。不过视觉也并不是总能正确的感知,所以才有魔术专门来欺骗人的眼睛,使人们感到新奇而不可思议。
看见的并非真的存在,你可能不大相信这种情况与数据库设计会有关系。如果你没发现这个问题对数据库设计有实际意义,只能说明你还没遇见这种问题,或对遇到的问题还没有向这个方向去思考。你可能知道考勤这个事情,因为老板总是在你迟到早退时,扣你的工资奖金,你会很心痛,所以对这个事情是熟知的。当然,我不关心老板是否该扣你的钱和怎么样扣你的钱,那是你和你的老板之前的事情。
我关心的是如何记录考核的数据,为什么关心这种类型的数据呢?因为考勤与人数和天数相关,它们会形成一个笛卡尔集,也就是记录的条数为人数乘以天数。当人数很多的时候,这个数据量是非常之大的。今天在论坛看到一个版友问排班怎么设计,排班和考勤类似,也是人数与天数的倍乘的关系。这样类型的数据还很多。
对此类数据我们该如何记录呢?回答这个问题之前,我们要引入异常管理的观点。什么叫做异常管理呢?所谓异常当然是正常的对称。诸如考勤、排班这类数据,它们有一些共同特点。比如考勤,通常像你一样喜欢迟到早退的捣蛋鬼并不多,所以你是异类,你的行为是异常,对你的迟到早退进行重点管理就叫做异常管理。排班也一样,通常情况下多数人都在上班,只有少数人在轮休,少数的轮休相对于正常的上班便是异常,重点管理休假便是异常管理。
当你明白了这个观点,那么你就不难想到在数据库中,我们正真需要记录的不是全部数据,也不是正常数据,而仅仅是异常数据。这样做的益处在于,存储和处理的数据量极大的减少,由此带来的效益和效率是不言而喻的。可是问题接踵而来,如果仅仅是记录了异常的数据,也就是考勤中的迟到早退的数据,或者排班中的轮休数据,那怎么显示出全部人员在某个日期的考勤情况或排班情况呢?
你不必对这个问题产生恐惧,在程序设计中这个问题是可以容易解决的。而且解决的方法有很多,那么在本例中给初学者提供一种处理的方法,供同志们参考。在这个例子中你所看到的完整数据,其实并不是全部保存在数据库中的,这就是程序的魔术,相信你会喜欢。
示例:
[attach]55439[/attach]
视图:
[attach]55440[/attach]
作者:
tmtony
时间:
2015-1-15 23:16
好分享! 说的有理。我以前也做过考勤。的确也是 从异常处理开始。这样节省很多时间
我找找。也贴个图上来
作者:
tmtony
时间:
2015-1-15 23:18
[attach]55441[/attach]
[attach]55442[/attach]
作者:
yodong
时间:
2015-1-16 09:27
站长的这个考勤系统真是够猛的.看图就可想而知功能不是一般的强大.
作者:
风中漫步
时间:
2015-1-16 13:52
看着就复杂,我还是喜欢简单点的.智商实在不够使
作者:
tmtony
时间:
2015-1-16 14:49
风中漫步 发表于 2015-1-16 13:52
看着就复杂,我还是喜欢简单点的.智商实在不够使
的确可以再简单些。例如那个排序功能。
因为是很早以前写的,懒得去改了
作者:
zpy2
时间:
2015-1-19 05:19
赞一个!!
作者:
asklove
时间:
2015-1-19 11:21
收藏,慢慢研究
作者:
lwwvb
时间:
2015-2-12 12:02
值得研究的例子。
作者:
xzj5324269
时间:
2015-5-1 15:40
这个写得还是挺不错的
作者:
nncchh
时间:
2015-7-20 13:03
学习学习
作者:
nncchh
时间:
2015-7-20 13:03
学习学习
作者:
a157838566
时间:
2015-7-28 14:41
fadsfadsf
作者:
fjh
时间:
2016-5-23 14:55
值得学习!
作者:
李力军2
时间:
2016-7-30 16:47
值得研究,写这不错
作者:
飘过
时间:
2016-7-31 08:37
不错
作者:
owen2016
时间:
2016-8-20 10:59
已经下载学习
作者:
灰太郎
时间:
2018-1-1 18:38
qqqqqqqqqqqqqqqqqqqqqqqqq
作者:
jun_hai
时间:
2023-3-15 10:44
谢谢!!!!!!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3