【问题标题】:Should I use 0/1 or True/False boolean? [duplicate]我应该使用 0/1 还是 True/False 布尔值? [复制]
【发布时间】:2023-03-02 21:14:01
【问题描述】:
0/1可以灵活,以后可以添加“2、3、4”等选项。
MySQL 中的TINYINT 是否比布尔值占用更多空间?
就我个人而言,我使用 0 和 1 表示所有内容。
您可以在常规编程(或 MySQL,任何您喜欢的)的上下文中回答这个问题。
【问题讨论】:
标签:
mysql
variables
types
boolean
【解决方案1】:
任何值得称道的优秀数据库系统都可以将布尔值转换为适合数据库的值,并且使用实际的布尔值类型可以更好地针对它进行编程。
【解决方案2】:
布尔值在不同的数据库(例如 PostgreSQL)之间更容易移植。
Tinyint 更灵活,可以升级为类似 Enum 的东西。
最终的选择应该是你的。
但是除了 SQL 之外的任何地方,为了清晰和类型安全,我肯定会推荐显式布尔值/枚举而不是“幻数”。
【解决方案3】:
当我完全确定某个值需要真/假时,我将在我的代码中使用布尔类型。对于其他情况,通常以 0/1 开头很方便,因为 0 可以作为成功的返回码,任何其他正整数或负整数都可以定义各种错误情况。
【解决方案4】:
如果您在任何语言中做出真/假决定,如果您的语言支持布尔值,请使用它。
使用 0/1 来支持“额外的数字”可能意味着您的字段不是一个决定,并且可能是或成为多项选择。