最好为多个用户添加单独的表?

时间:2012-11-30 02:45:01

标签: mysql database

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

1 个答案:

答案 0 :(得分:4)

一般数据库原则:

考虑面向对象。对象类。

  • “员工”就是这样一个类,因此您应该有一个存储员工的表。
  • 诸如计时或计时的“事件”是两种特定情况的一般类别,例如ClockIn和ClockOut。
    • 您可以考虑使用一个表来存储一个事件,其中包含事件日期和时间的字段,一个字段用于员工(一个外键),一个字段指示它是否进入
    • 您也可以考虑将一个表用于ClockIn,一个用于ClockOut,但这可能不太有利,具体取决于您在打印报告时希望以后扫描数据的方式。我个人建议不要采用这种方法,只需指出它是一种选择。
  • 理想情况下,每个表都应该有一个数字主键
    • 考虑键值对
    • 员工
      • 1 Jon Doe
      • 2 Juan Gomez
      • 等...
    • 事件
      • 1 2012-11-29 08:59时钟2
      • 这意味着Juan Gomez今天早上9点之前正在计时