我有一个表Drivers
,其中包含Id
,Name
,Status
列。在C#中,我有一个驱动程序状态的枚举
public enum DriverStatus
{
Online = 0,
Offline = 1,
Busy = 2,
SoonFree = 3
}
目前在数据库中,我使用varchar
列的Status
数据类型,这意味着我有以下记录:
1 John Online
2 Elsy Offline
此接缝很糟糕,我认为需要将其更改为状态列类型tinyint
,因为:
Tinyint
只有一个字节大小,范围为0-255。varchar
所以它按字母顺序排序而不是枚举优先级。DriverStatus
枚举值名称,我还需要更新数据库以保持一致。然后我问其他人为什么我们将varchar
用于枚举列,唯一的原因是它更容易调试,因为你看到文本不是0或3之类的数字。是否有任何真正好的理由为枚举提供字符串在数据库中?
答案 0 :(得分:2)
对枚举值使用查找表绝对更好。
优点: