用于处理用户可以修改的“动态枚举”的模式(编程语言不可知)

时间:2011-10-06 16:30:00

标签: database enums design-patterns

我总是面对这个问题,每次我面对这个问题,我都会找到一个不满意的不同解决方案。这种情况不适合特定语言,但涉及数据库。

想象一下,在管理应用程序中,您有一种情况,即用户(而不是程序员)可以填充表格,该表格显示了其员工的编程技能水平。他可以将这些值分配给emplyees表中的emplyees。

所以数据库中的情况是这样的:

Table: ProgrammingSkillLevel
  - ID
  - Name
  - Value
Table: Employees
  - ID
  - SomeUselessData
  - ProgrammingSkillLevelID

在编程方式中,我通常会将其作为枚举(我将使用C#):

enum ProgrammingSkillLevel
{
    Starter = 0,
    Medium,
    Advanced,
}

这种方法的优点是使用名称而不是值,实际上如果我们将枚举更改为这样的内容:

enum ProgrammingSkillLevel
{
    Starter = 0,
    Medium,
    Good,
    Advanced,
}

我们不会有任何问题因为我们使用名字。 在我的数据库方法中,我使用ID来避免一些字节浪费(我知道有枚举类型,但用户应该填写表格,而不是我!),而不是名称,所以优势肯定会丢失。

我应该使用什么方法让用户生成我称之为“动态枚举”的内容?我应该使用名字吗?

我想找到一个适用于我所有项目的好模式,因为我经常发现这种情况。

1 个答案:

答案 0 :(得分:0)

似乎问题包含答案, 我没有找到更好的方法通过网络进行此操作,因此我将此标记为答案。