首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL中布尔值的Boolean与tinyint(1)

MySQL中布尔值的Boolean与tinyint(1)
EN

Stack Overflow用户
提问于 2010-09-20 21:21:52
回答 3查看 119.4K关注 0票数 137

在MySQL数据库中,哪种列类型最适合用于布尔值?我使用boolean,但我的同事使用tinyint(1)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-20 21:26:14

这些数据类型是同义词。

票数 176
EN

Stack Overflow用户

发布于 2010-09-20 23:10:36

在这里,我将采取一种不同的方法,并建议您的开发人员同事理解您的代码与理解编译器/数据库一样重要。使用boolean可能和使用tinyint做同样的事情,但是它的优势是在语义上传达你的意图,这是有价值的。

如果你使用tinyint,你只能看到0和1的值并不明显,布尔值总是true或false。

票数 107
EN

Stack Overflow用户

发布于 2021-02-06 06:59:55

无论何时选择int或bool,它都很重要,尤其是当可以为空的列开始发挥作用时。

想象一下一个有多张照片的产品。你如何知道哪张照片可以作为产品封面?好的,我们会使用一个列来表示它。

到目前为止,product_image表有两列:product_idis_cover

凉爽的?还没。因为产品只能有一个封面,所以我们需要在这两列上添加一个唯一的索引。

但是等等,如果这两个列将获得唯一的索引,您将如何存储同一产品的许多非封面图像?唯一索引会在这里抛出错误。

所以你可能会想“好吧,但是你可以使用空值,因为这些都被唯一的索引检查省略了”,是的,这是真的,但是我们在这里失去了语言规则。

空值在布尔类型列中的用途是什么?是"all“、"any”还是"no"?布尔列中的空值允许我们使用唯一索引,但它也会扰乱我们解释记录的方式。

我要告诉大家,在某些情况下,整数可以有更好的用途,因为它不受严格的真或假含义的约束

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3751853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档