enum('yes', 'no') 与tinyint——使用哪一个?

发布于 2024-10-04 14:54:41 字数 181 浏览 3 评论 0原文

对于包含真/假值的字段,最佳实践是什么?

此类列可以定义为 enum('yes','no') 或tinyint(1)。一个比另一个更好/更快吗?

使用 enum('1','0') 与 enum('yes','no') 是否更好(即,它是否将 'yes' 或 'no' 作为字符串写入每一行,以便数据库存储尺寸变大)?

What's the best practice for fields that hold true/false values?

Such columns can be defined as enum('yes','no') or as tinyint(1). Is one better/faster than the other?

Is it better to use enum('1','0') vs. enum('yes','no') (i.e., does it write 'yes' or 'no' as a string to every row so the database storage size gets bigger)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜味拾荒者 2024-10-11 14:54:41

避免使用枚举原因

底线是 ENUM 有它的
地方,但应谨慎使用。
该模型应该强制执行
约束,而不是数据库;这
模型应该处理解释原始数据
将数据转化为对您有用的信息
视图,而不是数据库。

avoid enum from this reasons

The bottom line is that ENUM has its
place, but should be used sparingly.
The model should enforce the
constraints, not the database; the
model should handle interpreting raw
data into useful information for your
views, not the database.

黎歌 2024-10-11 14:54:41

BOOLEAN 类型的存在是有原因的。它确实是一个 TINYINT(1) 但既然它在那里,它一定是推荐的方式。

BOOLEAN type is there for a reason. It is indeed a TINYINT(1) but since it's there, it must be the recommended way.

九歌凝 2024-10-11 14:54:41

另外,ENUM 是一个非标准的 MySql 扩展。您应该避免它,特别是如果您可以通过标准方式获得相同的结果。

Also, ENUM is a non-standard MySql extension. You should avoid it, especially if you can achieve the same results in a standard way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文