更新数据库条目和/或保留现有条目


update database entry and/or preserve exisisting entries

我正在构建一个PHP应用程序,用于检查数据库中用户的生日。这些用户在他们的生日时被授予各种各样的礼物,他们可以从中选择一个。我跟踪他们挑选的礼物,这样我就可以看到谁已经认领了礼物,谁还有礼物等着。

此应用程序的目标群体是公司,他们为每个员工支付费用,这是该应用程序的一部分。这款应用程序是为了让公司更容易记住员工的生日,并表达他们对员工的关心。

随着公司的增长/收缩,随着他们雇佣或解雇员工,他们每个月都要更新员工名单,这样系统就可以排除那些不再在那里工作的人,并增加新员工。

现在我的问题是:我如何用最聪明的方式做这件事?

如果我要删除以前与给定公司关联的每个员工,当给定他们的当前员工名单时,并从头开始插入新列表,我将失去员工与数据库中未声明的礼物之间的关联。

另一方面,为了确保我在数据库中保留关联,如果我只添加新员工并删除那些不再在花名册上的员工,我将如何以最聪明的方式做到这一点?

我得到的雇员的字段是id, firstname, surname, email, birthdaycompany_id。这两种方法都不是识别用户是否已经在数据库中的好方法(可以争辩说电子邮件可能有效,但如果由于某种原因他们更改了它,它将不起作用)

最简单的答案是将employee_id添加到数据库中。每个公司都有内部id,用来识别系统内部的员工。这在很多方面都是必要的,包括工资、福利、考勤等。因此,您所需要的就是将这个ID字段添加到您的employee表中,并确保您收到的花名册包含所有员工的这些id。

此外,不需要删除不再为公司工作的员工的条目,您可以只使用一个标志来指示雇佣是否仍然有效。然后在查询中添加相应的where子句。

您可以在表employee中添加一个简单的字段:

employeeID | name | isStillHired

当公司解雇一名员工时,您将字段isStillHired设置为false,这样您就不会丢失他的引用