mySQL使用枚举而不是两个布尔字段是否有优势?

时间:2015-02-20 07:26:04

标签: mysql enums boolean field

我正在构建一个表来记录消息。我需要注意邮件何时发送以及邮件是否已成功发送。

ENUM字段中使用'ready', 'sent', 'delivered'类型的ENUM类型优于boolean字段是否有优点/缺点:

| sent | delivered |
| true | false     |

或者它纯粹是一种风格选择?

1 个答案:

答案 0 :(得分:1)

在您的示例中,这两组值似乎相互依赖。 例如,如果邮件不是delivered,则邮件不能为sent。 使用多个布尔字段可以存储不正确的值组合。

我建议您使用一个字段来存储状态。该字段可以是连接到状态表(discussed frequently)的枚举或整数外键。


话虽如此,如果字段彼此独立,则使用布尔字段是完全可以接受的。