在MySQL数据库中,哪种列类型最适合用于布尔值?我使用boolean
,但我的同事使用tinyint(1)
。
发布于 2010-09-20 21:26:14
这些数据类型是同义词。
发布于 2010-09-20 23:10:36
在这里,我将采取一种不同的方法,并建议您的开发人员同事理解您的代码与理解编译器/数据库一样重要。使用boolean可能和使用tinyint做同样的事情,但是它的优势是在语义上传达你的意图,这是有价值的。
如果你使用tinyint,你只能看到0和1的值并不明显,布尔值总是true或false。
发布于 2021-02-06 06:59:55
无论何时选择int或bool,它都很重要,尤其是当可以为空的列开始发挥作用时。
想象一下一个有多张照片的产品。你如何知道哪张照片可以作为产品封面?好的,我们会使用一个列来表示它。
到目前为止,product_image
表有两列:product_id
和is_cover
凉爽的?还没。因为产品只能有一个封面,所以我们需要在这两列上添加一个唯一的索引。
但是等等,如果这两个列将获得唯一的索引,您将如何存储同一产品的许多非封面图像?唯一索引会在这里抛出错误。
所以你可能会想“好吧,但是你可以使用空值,因为这些都被唯一的索引检查省略了”,是的,这是真的,但是我们在这里失去了语言规则。
空值在布尔类型列中的用途是什么?是"all“、"any”还是"no"?布尔列中的空值允许我们使用唯一索引,但它也会扰乱我们解释记录的方式。
我要告诉大家,在某些情况下,整数可以有更好的用途,因为它不受严格的真或假含义的约束
https://stackoverflow.com/questions/3751853
复制相似问题