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。