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

Should I use 0/1 or True/False boolean?

本问题已经有最佳答案,请猛点这里访问。

0/1可以是灵活的,将来可以添加"2、3、4"等选项。

mysql中的TINYINT比boolean占用更多空间吗?

就我个人而言,每件事都用0和1。

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


任何有价值的数据库系统都会将布尔值转换为与数据库相适应的值,并且使用实际的布尔值类型可以更好地对其进行编程。


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


Boolean在不同的数据库(如PostgreSQL)中更易于移植。tinyint更灵活,可以升级到枚举之类的东西。

最后的选择应该是你的。但是除了SQL之外的任何地方,为了清晰和类型安全,我绝对推荐显式布尔/枚举胜过"幻数"。


如果您在任何语言中做出了正确/错误的决定,如果您的语言支持布尔值,那么就使用它。

使用0/1来支持"多余的数字"可能意味着您的字段不是一个决定,可能是或成为多个选择。