用摄象头,扫描头像,然后和数据库的头像分析,如果差不多就可以.
不过双胞胎,可能就不行了.
ha ,ha

解决方案 »

  1.   

    看来只有DNA了,指纹,虹膜,声音,卡都可能作假呀
      

  2.   

    客户要求我把经常在一起拉卡的人找出来 . 因为代拉卡一般发生在关系要好的同事之间的。 
    但好像处理起来太麻烦了 , 我用的是Sql 2000 数据库 。 
    不知道怎么处理这个过程 
      

  3.   

    做一个打卡相邻用户排行榜,如果公司有100人,则排行榜=100*100/2,每当有一人打卡就把他和前一个人的“打卡组合”记录到“打卡相邻用户排行榜中”,时间一长就能够发现“嫌疑员工”,“排行榜”可以只保存最近一星期的数据(数据库表的列包括星期一到星期日,每日覆盖相应列,用触发器求和放入合计列),这样就可以随时来个TOP10“最具嫌疑人气组合”,吼吼。此方法支持的员工人数不能太多,否则平方的组合数能拖死数据库 1000*1000/2=500000
      

  4.   

    这个显然不是使用SQL语句可以解决的,肯定要用程序来解决。当然用存储过程也可以。使用存储过程实现的话,简单思路如下:1。建一个临时表,表结构如下:
    卡号1  卡号2  时间1  间隔时间2。建立一个存储过程,包括三个参数:起始日期/截止日期/间隔时间范围(X秒)3。存储过程中第一句SQL语句为:
    select * from 打卡表 where checkdate>=起始日期 and checkdate<=截止日期 order by checkdate,checktime
    打开一个游标,遍历所有符合条件记录4。在上一个游标的循环中,为每一条记录,假设其为A记录,查找其后 X 秒内的所有打卡记录:
    select * from 打卡表 where checkdate=A记录日期 and checktime-A记录时间<X and checktime>A记录时间
     order by checktime
    打开一个游标,遍历所有符合条件的记录5。将上一游标中查询到的记录假设为B记录,则在临时表中生成一条记录
    insert into 临时表 values (卡号1,卡号2,A记录时间,B记录时间-A记录时间)
    其中,卡号1为A记录卡号和B记录卡号,进行字符串比较,较大的一个,卡号2为较小的一个6。循环结束后,就获得了指定的日期段范围,在指定的时间间隔范围内连续刷卡的所有“卡号对”记录7。Select 卡号1,卡号2,count(卡号1) from 临时表 group by 卡号1,卡号2 order by count(卡号1) desc
    那么,排在前面的就是在较小的时间间隔范围内,出现连续刷卡情况很多的卡号组合,可以怀疑为代打卡。不知道你看懂了没?
      

  5.   

    感谢  zqfleaf(动力港湾) 及 cometsky(天空中自由翱翔的彗星) 的建义 , 正在努力实现 .用户安装摄像机的 , 每次拉卡都会录相 , 但人太多了(2000多人) , 没法查看所有录相 .
    所以想要找出可疑的代拉卡人 . 然后根据他们的具体时间查看录相 。