2009-11-13 157 views
0

0/1可以灵活并且可以添加诸如“2,3,4”之类的选项。我应该使用0/1还是True/False布尔值?

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

就我个人而言,我使用0和1作为一切。

您可以在常规编程(或MySQL,无论你喜欢什么)的情况下回答这个问题。

+0

上下文是MySQL吗? – 2009-11-13 21:12:18

+4

等待,如果你基本上想让0/1充当布尔值,那么可能会有哪些其他选项?文件未找到? http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx – Brandon 2009-11-13 21:13:50

回答

7

任何有价值的盐的数据库系统都会将布尔转换为适合数据库的东西,并且使用实际的布尔类型使得对它的编程更好。

1

布尔值在不同的数据库(例如PostgreSQL)中更具可移植性。 Tinyint更灵活,可以升级到Enum-like。

最后的选择应该是你的。 但除了SQL以外的任何地方,为了清晰和类型安全,我肯定会推荐显式的布尔值/枚举“魔术数字”。

1

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

0

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

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