如果另一个表中没有匹配项,则使用什么作为外键-MySQL

如果另一个表中没有匹配项,则使用什么作为外键-MySQL,mysql,datetime,calendar,scheduling,foreign-key-relationship,Mysql,Datetime,Calendar,Scheduling,Foreign Key Relationship,我正在为日程表web应用程序开发考勤/加班模块。其思想是MySQL中有一个轮班表,每个轮班都有一个开始和结束时间。经理将选择一个班次,并在考勤表中输入一个条目,指定员工是否早退/晚退/早退/加班。考勤表中的条目被键入班次ID#(这只是一个枚举键) 但是,如果有人在休息日来上班,就没有必要把钥匙转到钥匙上。对于这些钥匙,什么是好的系统?我可以设置条件枚举吗?我如何避免与轮班ID重叠的风险?将加班班次重新添加到原始计划数据库中不是一个选项。与前面的问题类似,如果没有数据,则NULL是合适的。在这种情

我正在为日程表web应用程序开发考勤/加班模块。其思想是MySQL中有一个轮班表,每个轮班都有一个开始和结束时间。经理将选择一个班次,并在考勤表中输入一个条目,指定员工是否早退/晚退/早退/加班。考勤表中的条目被键入班次ID#(这只是一个枚举键)


但是,如果有人在休息日来上班,就没有必要把钥匙转到钥匙上。对于这些钥匙,什么是好的系统?我可以设置条件枚举吗?我如何避免与轮班ID重叠的风险?将加班班次重新添加到原始计划数据库中不是一个选项。

与前面的问题类似,如果没有数据,则NULL是合适的。在这种情况下,工作没有附加到特定的班次,那么你还能放什么呢?状态也应该反映这一点。

向枚举列添加额外的键有什么问题?这不应该损害现有代码,对我来说似乎是最好的解决方案。

但是如果我使用null,则密钥将不会是唯一的。这不是一个问题吗?事实上,我刚刚意识到它是一个外键,我可以为主键设置一个单独的枚举列。谢谢你和Ryan让我想起了这件事。