Php 在数据库或代码中存储静态只读数据?

Php 在数据库或代码中存储静态只读数据?,php,database,Php,Database,假设我有一个员工数据。 每个员工都有自己的员工类型,例如:兼职、实习生、经理。 这些类型是固定的,并在整个应用程序中使用,其用途是只读的 问题是,我是否应该将这些员工类型存储到数据库中,如下所示: table employee_type ID | Name -------------------- 1 | Part-timer 2 | Internee 3 | Manager 或者在代码内部,作为静态常量变量(或枚举),如PHP代码中所示: class Employee {

假设我有一个员工数据。
每个员工都有自己的员工类型,例如:兼职、实习生、经理。
这些类型是固定的,并在整个应用程序中使用,其用途是只读的

问题是,我是否应该将这些员工类型存储到数据库中,如下所示:

table employee_type
ID | Name 
--------------------
 1 | Part-timer
 2 | Internee
 3 | Manager
或者在代码内部,作为静态常量变量(或枚举),如PHP代码中所示:

 class Employee
 {
     const EMPLOYEE_TYPE_PARTTIMER = 1;
     const EMPLOYEE_TYPE_INTERNEE = 2;
     const EMPLOYEE_TYPE_MANAGER = 3;
     ...
     ...
 }
使用该代码的优点是,您可以像这样使用这些员工类型

$employee = new Employee( Employee::EMPLOYEE_TYPE_MANAGER );
...
...
if ( $employee->getType() == Employee::EMPLOYEE_TYPE_PARTTIMER )
{ ... }
那么,哪一个更好呢?

或者可能有比这两个更好的解决方案?

如果数据库中有(或可能有)存储ID的其他表,我会将定义存储在一个表中,以便为其他表中的子行启用完整性约束。如果您愿意,也可以使用常量,但这种冗余可能会导致错误,因为您可能会在source和database中以不同的值结束

我建议您将其输入到database中。当您想要更改员工的状态时,请创建一个面板/表格。它将使应用程序更加健壮和动态

但就像你在这里说的

这些类型是固定的,并在整个应用程序中使用,其用途是只读的

静态数据=常量值 动态数据=数据库

我还是喜欢数据库