我正在构建一个PHP应用程序,用于检查数据库中用户的生日。这些用户在他们的生日时被授予各种各样的礼物,他们可以从中选择一个。我跟踪他们挑选的礼物,这样我就可以看到谁已经认领了礼物,谁还有礼物等着。
此应用程序的目标群体是公司,他们为每个员工支付费用,这是该应用程序的一部分。这款应用程序是为了让公司更容易记住员工的生日,并表达他们对员工的关心。
随着公司的增长/收缩,随着他们雇佣或解雇员工,他们每个月都要更新员工名单,这样系统就可以排除那些不再在那里工作的人,并增加新员工。
现在我的问题是:我如何用最聪明的方式做这件事?
如果我要删除以前与给定公司关联的每个员工,当给定他们的当前员工名单时,并从头开始插入新列表,我将失去员工与数据库中未声明的礼物之间的关联。
另一方面,为了确保我在数据库中保留关联,如果我只添加新员工并删除那些不再在花名册上的员工,我将如何以最聪明的方式做到这一点?
我得到的雇员的字段是id
, firstname
, surname
, email
, birthday
和company_id
。这两种方法都不是识别用户是否已经在数据库中的好方法(可以争辩说电子邮件可能有效,但如果由于某种原因他们更改了它,它将不起作用)
最简单的答案是将employee_id
添加到数据库中。每个公司都有内部id,用来识别系统内部的员工。这在很多方面都是必要的,包括工资、福利、考勤等。因此,您所需要的就是将这个ID
字段添加到您的employee
表中,并确保您收到的花名册包含所有员工的这些id。
此外,不需要删除不再为公司工作的员工的条目,您可以只使用一个标志来指示雇佣是否仍然有效。然后在查询中添加相应的where
子句。
您可以在表employee中添加一个简单的字段:
employeeID | name | isStillHired
当公司解雇一名员工时,您将字段isStillHired
设置为false,这样您就不会丢失他的引用