首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在数据库中存储考勤记录

在数据库中存储考勤记录
EN

Stack Overflow用户
提问于 2010-01-04 08:49:59
回答 4查看 9.6K关注 0票数 0

我发现了一个类似的问题(School attendance database)。

我必须处理这些额外的条件。

  1. 记录上座率的用户总数将达到10万。
  2. 每个用户都会有滑动输入,
  3. A用户可能会进行多次滑动,以防万一s/他不确定数据是否被捕获。
  4. 必须保持1年出勤记录,用户可以访问。

我想的基本表格是带有以下条目的。

value

  • Date

  • Swipe in time
  1. UserID --数字
  2. 滑出-time.

如果这是表,那么在理想情况下,数据库中大约行数将为= 100,000 x 250(yr工作天)= 25,000,000。现在,如果用户重复刷入或刷出行将加起来。假设1/3的员工这样做,以确保考勤被标记。因此,额外行8,333,333共计约33,333,333行。

问题之一是当用户滑动两次,但只滑动一次时。然后,我需要在第二次滑动输入中有空值,或者在刷出字段中填充相同的值。这将把提到的额外行加起来。我想的另一个选择是每天运行一个后台任务来清除双重用户条目。假设用户在上午8点进入,然后在上午8点10分进入,所以系统在day.First结束时删除了上午8点10分的条目。

然而,我认为我所看到的是。如果用户在办公室过夜工作,然后在凌晨2点左右滑动,则滑动数据将是

  1. 在-1-1月-10-上午8:00,
  2. 滑出-2-1月-10-2:00,
  3. 在-2 1-10-下午1:00(他同一天又回到办公室--工作压力:)
  4. 刷掉了-2-10-10 00。如何处理?

g 230

我的问题是: 1.对于mysql、postgresql这样的数据库来说,列出的行数是否可以接受,而不会耽误太多的检索时间?我更感兴趣的是开源db的性能。2.是否有比这更好的编排表格的方法?

EN

回答 4

Stack Overflow用户

发布于 2010-01-04 09:29:43

简单的答案是,你记录的是滑动而不是几天,然后对数据进行后处理以实现所需的跟踪--即使没有你的例子,也有更基本的“外出午餐”或其他离开网站的理由,它们要求每天超过一次到达和离开。

不管你做什么,你都会遇到多次滑动的问题--人们是“人”,你将与边缘情况斗争,即用户因任何原因(通常是无辜的)以奇怪的方式行事的情况。

票数 3
EN

Stack Overflow用户

发布于 2010-01-04 09:23:26

这里有一个小小的正常化:

UserTable: UserID FirstName LastName Email WhateverOtherFields UserCreated datetime LastActivityDateTime datetime

AttendanceTable: AttendanceID UserID EventID SwipeIn datetime SwipeOut datetime

EventTable: EventID EventName EventLocation EventStart datetime EventEnd datetime

有了这样的布局,即使在同一天,您也可以将多次出诊记录在文件中。您将允许用户到SwipeIn开始考勤本身,并将该考勤保持打开直到用户SwipeOut。也许还会给系统一个冲洗过程,让您关闭那些从未到达SwipeOut的与会者。通过添加要附加到考勤表的事件表之类的内容,您将允许跟踪事件等。你完全可以全力以赴或亲吻。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2010-01-04 09:25:50

我看不出有什么问题。一排排。许多应用程序通常具有这样的数据量。对于你的问题,我的意见如下:

1)你需要考虑正式的工作时间,比如早上9点到下午6点,即每天9小时。如果用户在午夜后逾期逗留,则应在第二天的出勤时间中加上午夜后的剩余时间。-1月1日-1月10日-上午8:00+滑出-2-1月-10-凌晨2:00=1月1日-10日16小时+1月2日-10下午2小时

所以你的总数是1月1日至10日16小时和1月2日至10日11小时。

您还可以在表中添加的另一项内容是列“小时日志记录”。不是很有用,但有时对报告有帮助。您可以为该列添加值,只用于刷出不会被清除的项,即最后一次输出条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1998298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档