我应该使用0/1还是True/False布尔值?

4

0/1可以灵活使用,未来还可以添加选项,如“2、3、4”。

MySQL中的TINYINT是否比布尔型占用更多空间?

个人而言,我将0和1用于所有情况。

您可以根据常规编程(或MySQL,任选一种)的上下文回答这个问题。


4
等等,如果您基本上希望0/1作为布尔值,还能有什么其他的选项呢?FileNotFound?这篇文章讨论了一个程序员使用0x3f代替true/false的荒谬行为。原文链接:http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx - Brandon
4个回答

7
任何值得一试的数据库系统都会将布尔类型转换为适合数据库的类型,并且使用实际的布尔类型可以使编程更加方便。

1

Boolean在不同的数据库(例如PostgreSQL)中更具可移植性。 Tinyint更加灵活,可以升级为类似枚举的东西。

最终的选择应该是你自己的。 但除了SQL之外,我肯定会推荐明确的布尔值/枚举而不是“魔术数字”,以提高清晰度和类型安全性。


1
当我确定需要一个布尔值时,我会在代码中使用布尔类型。对于其他情况,通常以0/1开头很方便,因为0可以作为成功的返回代码,而任何其他正或负整数都可以定义各种错误条件。

0

如果您在任何语言中做出真/假决策,如果您的语言支持布尔值,请使用它。

使用0/1来支持“额外数字”可能意味着您的字段不是一个决策,并且可能成为多个选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接