我总是面对这个问题,每次我面对这个问题,我都会找到一个不满意的不同解决方案。这种情况不适合特定语言,但涉及数据库。
想象一下,在管理应用程序中,您有一种情况,即用户(而不是程序员)可以填充表格,该表格显示了其员工的编程技能水平。他可以将这些值分配给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来避免一些字节浪费(我知道有枚举类型,但用户应该填写表格,而不是我!),而不是名称,所以优势肯定会丢失。
我应该使用什么方法让用户生成我称之为“动态枚举”的内容?我应该使用名字吗?
我想找到一个适用于我所有项目的好模式,因为我经常发现这种情况。
答案 0 :(得分:0)
似乎问题包含答案, 我没有找到更好的方法通过网络进行此操作,因此我将此标记为答案。