在数据库中硬编码值的传统方法是什么?

What is the conventional way to hard-code values in a database?

我的应用程序有一个数据库table,用于记录员工的出勤情况。 attedance_status 列只有三个可能的值 - "present""absent""on_leave"NULL 默认值。

如何将其添加到数据库中?到目前为止,我想出了两种可能的方法。

  1. 使用 status_idstatus_value 创建另一个 table attendance_status 并向其添加上述值。然后将应用程序中的 ID 用于所有 SQL 查询。

  2. 可能是方法不对。对值进行硬编码(可能在配置文件中)并在整个应用程序的 SQL 查询中使用它。

我走错了吗?应该如何处理?

两者都可以,但选项 1 将在需求发生变化时为您提供灵活性,并且是标准数据模型。但是,我会以不同的方式命名我的专栏。我会 idvaluename。然后引用变成 attendance_status.idattendance_status.value。第三列可用于显示或报告等。 valueon_leavenameOn leave

如果数据输入点完全关闭,则选项 2 有效。如果有人编写新功能,那么他或她可能会发明一些不同的东西来表示相同的东西,例如 onLeave.