【问题标题】:Database design for weekly time tracking用于每周时间跟踪的数据库设计
【发布时间】:2013-09-12 19:37:27
【问题描述】:

我正计划创建一个数据库来跟踪用户在 M-F 的时间。每周应该从星期一开始,一直持续到星期日。

我有一张表格,里面填满了我的整个用户群,所以我知道我需要为哪些用户创建条目以及他们属于哪里。到目前为止,我已经提出了一个由以下字段组成的表格来跟踪条目(以及填充字段的示例数据):

Field Name in table (Example of possible data)
---------------------
Employee (John Smith) 'String
Unit (Quality Assurance) 'String
WeekOf (9/9/13) 'date

InMonday (6:30) 'string, validate either a time in/out or N/A if holiday/vacation
OutMonday (3:15) '^^
HoursWorkedMonday (8.00) 'total hours worked
VacationMonday (0.00) 'if N/A for time, should have hours here
OvertimeMonday (0.00) 'any additional work hours should go here

对于这种情况,我必须为一周中的每一天创建 In/Out(并且可能跟踪每一天的日期)。这是无关紧要的,还是有一个看似更好的组织来跟踪每周的时间测量?我应该使用一个带有单位指示符的表格还是为每个单位使用多个表格?

【问题讨论】:

    标签: ms-access database-design


    【解决方案1】:

    通常它是一个包含日期字段、输入字段和输出字段的表。这几乎是标准的时间表数据。看看this guy是怎么设置的。

    确保您在时间表中使用员工 ID,然后您将拥有一个对应的员工表,其中包含所有相关信息(ID、姓名、地址,以及您存储在他/她身上的任何其他信息)。

    【讨论】:

    • 啊,我明白了,然后我可以在需要时加入其他数据。所以几乎每个用户都应该有一个每天的时间。因此,如果我一次输入一周,我应该为我的用户生成一周的记录,然后设计一种方法将它们拉到我的前端进行编辑。我应该将其拆分为“单位”表还是将单位保留为主表中的字段?你如何处理可管理性,例如会有很多用户。编辑:很多,我的意思是每天几百个
    • 我不能 100% 确定您最终想要对这些数据做什么。如果您谈论的是存储小时数而不是实际时间/超时,那么我将存储实际单位而不是那些字段。只需一个字段“TimeWorked”,然后让他们输入小时数。至于在数据库中编辑该数据(而不是仅添加新记录),您可以转置数据,然后逐个单元格地将其写回。通常,您不想创建与数据的开放连接,总是使用未绑定的表单。将垃圾记录写入表变得更加困难。
    • 对不起,我的意思是,在创建实际表格时,我应该如何将我的数据分组到表格中。假设我在“零件部门”工作,我应该有一个“零件部门”、“佣金部门”等表,或者这应该是一个表中的字段名称“部门”以跟踪时间。 IE,我想如果我想查看所有数据(如果拆分),则需要联合查询,而不是数据在一个带有“部门”字段的表中。
    • 我认为,出于可伸缩性的考虑,拥有一个带有部门字段的表是有意义的。这样,如果添加更多部门或删除任何部门,您就不必疯狂地管理数据库。
    【解决方案2】:

    虽然这个项目在技术上是可行的,但我不得不质疑在 Access 中自己制作它的价值。

    1. 主要问题在于安全性:

      • 作为一个桌面程序,这很容易在没有预防措施的情况下被破解。请记住,对于 Access,用户界面和设计器界面默认情况下是相同的。
        • 如果这将是一个简单、直接的数据库,有动力的用户只需要打开导航面板,他们就可以添加/编辑/删除所有时间表。
        • 如果您隐藏导航面板,用户只需进行快速 google 搜索并学习按 F11(或以任何方式意外找到它)
        • 您可以尝试定期(每天?每小时?)将数据从可公开访问的后端传输到一般用户无法访问的存档数据库。这可以工作,但仍然给他们一个编辑记录的窗口。如果您没有正确转移,他们仍然可以添加旧记录。
      • 作为 SharePoint 上的网络表单,这可能是相当安全的。如果你有 Sharepoint,我会推荐这个。
    2. 您还应该考虑开发时间。这是从餐馆到工厂再到学校的许多行业中非常常见的业务任务。因此,已经有大量廉价的基于网络的选项可供您今天开始使用。我什至会假设其中一些还包括按部门划分数字的摘要审查。

      我自己从未研究过这些,但通过谷歌快速搜索发现了这个有趣的页面:http://en.wikipedia.org/wiki/Comparison_of_time_tracking_software

    【讨论】:

    • 我没有指定,但我将在 vb.net 中执行此操作,并使用数据库上的密码断开连接。比目前一堆excel电子表格的情况要好。数据用作对手册表的验证。谢谢你的链接,我现在去看看。
    • 听起来确实更好(我正在想象共享驱动器上的独立数据库)。至于链接,我有点喜欢那些甚至不需要用户输入的链接。您可以只测量一天中第一次鼠标点击和最后一次鼠标点击之间的时间。
    • 投反对票的人能解释一下吗?我总是乐于接受新想法。
    猜你喜欢
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多