我应该何时使用存储在数据库中的枚举以及代码中的枚举?

The*_*hea 3 c#

存储枚举的最佳方法是什么?例如,我有一个具有属性Sex的实体Person.我能想到的第一个选项是存储枚举值和名称的表(例如,1表示Male,2表示Female),然后在Person表中存储int值.第二个选项是在代码中使用相应的int值进行枚举,并在Person表中存储int值.最后一个选项是在代码中再次枚举并存储字符串值.例如,性别为"男性"的人.

哪种方法更好,什么时候?

Jan*_*oom 5

代码中的枚举很酷且很方便,但是在更改枚举时可以破坏数据库的完整性.

所以一般情况下:当需要关系完整性时,在数据库中使用枚举.我们在代码中使用显式映射枚举来处理这个问题; 并在数据库中强制执行完整性.喜欢:

| Id | Value  |
---------------
| 1  | Male   |
| 2  | Female |

// FK from the table above to the table containing all your data, and in code:

enum Gender { Male = 1, Female = 2 }
Run Code Online (Sandbox Code Playgroud)

何时仅在代码中使用枚举?
Fe Bitmasking!因此,您可以在数据库中有效地存储一组只在您的应用程序中有意义的设置.诚信并不关心,因为数据库与此无关.