mySQL 使用枚举而不是两个 boolean 字段有优势吗?

标签 mysql enums boolean field

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

ENUM 有两个像这样的 boolean 字段:

| sent | delivered |
| true | false     |

还是纯粹是风格选择?

最佳答案

在您的示例中,两组值似乎相互依赖。 例如,如果消息未发送,则该消息不能delivered。 使用多个 boolean 字段可以存储不正确的值组合。

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


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

关于mySQL 使用枚举而不是两个 boolean 字段有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28623645/

相关文章:

php - 我如何从数据库中检索数据,条件是数据应在 6 个月之前添加,并且产品数量应高于 200

mysql - 如何查询由另一个 pk 描述的 2 个表到 pk 表的关系?

mysql - 从 github_timeline : group pushes and downloads by repos, 中选择存储库 url 并通过 stargazers 过滤 repos

MySQL, SELECT * FROM t WHERE c={重复次数最多的条目}

c# - 如何使用 C# 返回标有自定义属性的枚举值

java - 在 Scala (Play Framework) 中从具有 String 字段的 Java 枚举获取 Map[enum, String]?

使用枚举的 Swift 协议(protocol)扩展

c - 为什么 sizeof(a ? true : false, a) 运算符打印一个字节?

c# - boolean 值始终相同

boolean - 程序员应该在代码中使用 boolean 变量 "document"吗?