0

我对数据库设计比较陌生,所以我还在学习很多东西。我正在研究的是一个在线时间卡时钟。我只是在弄乱它以了解更多信息。我的全职工作是为操作重型设备的叔叔工作,他对我表示有些头疼。当检查考勤卡时,一些员工的手写字难以阅读,一些员工没有正确添加时间,所以他总是要仔细检查他们的数学,还有一些人没有按时交出考勤表。大多数员工都有智能手机,所以我的解决方案是制作一个简单的网站,其中有一个“打卡”和“打卡”按钮,它还包含几个文本字段来描述员工当天的操作和工作地点他们在。所有这些都将被添加到一个数据库中,该数据库将在工作周结束时通过电子邮件发送给老板。我的问题是为此设置数据库的最佳方法是什么?我应该为每个员工添加一个单独的表还是将它们全部保存在一个表中?将有大约 20 名员工使用该网站。提前感谢您的帮助。

4

1 回答 1

4

一般数据库原则:

考虑面向对象。对象的类别。

  • “员工”就是这样一个类,因此您应该有一个存储员工的表。
  • 诸如打卡或打卡之类的“事件”是两种特定情况的一般类别,例如ClockIn 和ClockOut。
    • 您可以考虑用一张表来存储一个事件,其中一个字段用于事件的日期和时间,一个字段用于员工(外键),一个字段指示它是进还是出
    • 您也可以考虑将一张表用于 ClockIn,一张用于 ClockOut,但这可能并不有利,具体取决于您希望稍后在打印报告时如何扫描数据。我个人建议不要使用这种方法,只是指出这是一种选择。
  • 理想情况下,每个表都应该有一个数字主键
    • 考虑键值对
    • 员工
      • 1 乔恩·多伊
      • 2 胡安·戈麦斯
      • ETC...
    • 事件
      • 1 2012-11-29 08:59 打卡 2
      • 这意味着胡安·戈麦斯今天早上 9 点之前打卡
于 2012-11-30T02:54:20.603 回答