在数据库中硬编码值的传统方法是什么?
What is the conventional way to hard-code values in a database?
我的应用程序有一个数据库table,用于记录员工的出勤情况。 attedance_status
列只有三个可能的值 - "present"
、"absent"
、"on_leave"
和 NULL
默认值。
如何将其添加到数据库中?到目前为止,我想出了两种可能的方法。
使用 status_id
和 status_value
创建另一个 table attendance_status
并向其添加上述值。然后将应用程序中的 ID 用于所有 SQL 查询。
可能是方法不对。对值进行硬编码(可能在配置文件中)并在整个应用程序的 SQL 查询中使用它。
我走错了吗?应该如何处理?
两者都可以,但选项 1 将在需求发生变化时为您提供灵活性,并且是标准数据模型。但是,我会以不同的方式命名我的专栏。我会 id
、value
、name
。然后引用变成 attendance_status.id
和 attendance_status.value
。第三列可用于显示或报告等。 value
是 on_leave
而 name
是 On leave
。
如果数据输入点完全关闭,则选项 2 有效。如果有人编写新功能,那么他或她可能会发明一些不同的东西来表示相同的东西,例如 onLeave
.
我的应用程序有一个数据库table,用于记录员工的出勤情况。 attedance_status
列只有三个可能的值 - "present"
、"absent"
、"on_leave"
和 NULL
默认值。
如何将其添加到数据库中?到目前为止,我想出了两种可能的方法。
使用
status_id
和status_value
创建另一个 tableattendance_status
并向其添加上述值。然后将应用程序中的 ID 用于所有 SQL 查询。可能是方法不对。对值进行硬编码(可能在配置文件中)并在整个应用程序的 SQL 查询中使用它。
我走错了吗?应该如何处理?
两者都可以,但选项 1 将在需求发生变化时为您提供灵活性,并且是标准数据模型。但是,我会以不同的方式命名我的专栏。我会 id
、value
、name
。然后引用变成 attendance_status.id
和 attendance_status.value
。第三列可用于显示或报告等。 value
是 on_leave
而 name
是 On leave
。
如果数据输入点完全关闭,则选项 2 有效。如果有人编写新功能,那么他或她可能会发明一些不同的东西来表示相同的东西,例如 onLeave
.