mySQL 使用枚举而不是两个布尔字段有优势吗?
mySQL Are there advantages to using enum instead of two boolean fields?
我正在构建一个 table 来记录消息。我需要注意消息何时发送以及消息是否已成功传递。
在 ENUM
字段中使用具有 'ready', 'sent', 'delivered'
值的 ENUM
类型是否有优点/缺点,而不是像这样有两个 boolean
字段:
| sent | delivered |
| true | false |
还是纯粹的风格选择?
在您的示例中,两组值似乎相互依赖。
例如,一条消息如果不是 sent
,则不能是 delivered
。
使用多个布尔字段可以存储不正确的值组合。
我建议您使用一个字段来存储状态。该字段可以是连接到状态 table (discussed frequently).
的枚举或整数外键
话虽如此,如果字段彼此独立,则使用布尔字段是完全可以接受的table。
我正在构建一个 table 来记录消息。我需要注意消息何时发送以及消息是否已成功传递。
在 ENUM
字段中使用具有 'ready', 'sent', 'delivered'
值的 ENUM
类型是否有优点/缺点,而不是像这样有两个 boolean
字段:
| sent | delivered |
| true | false |
还是纯粹的风格选择?
在您的示例中,两组值似乎相互依赖。
例如,一条消息如果不是 sent
,则不能是 delivered
。
使用多个布尔字段可以存储不正确的值组合。
我建议您使用一个字段来存储状态。该字段可以是连接到状态 table (discussed frequently).
的枚举或整数外键话虽如此,如果字段彼此独立,则使用布尔字段是完全可以接受的table。