什么列类型最适合在MySQL数据库中用于布尔值?我用,boolean但我的同事使用tinyint(1).
Mār*_*ovs 143
这些数据类型是同义词.
dj_*_*ult 80
我将在这里采取不同的方法,并建议您的开发人员同样理解您的代码与编译器/数据库一样重要.使用boolean可能与使用tinyint做同样的事情,但是它具有在语义上传达你的意图的优点,这是值得的.
如果你使用tinyint,你应该看到的唯一值是0和1并不明显.布尔值总是为真或假.
Spu*_*ley 34
boolean在MySQL中不是一个独特的数据类型; 它只是一个同义词tinyint.请参阅MySQL手册中的此页面.
我个人建议使用tinyint作为首选项,因为boolean不会从名称中执行你认为它做的事情,因此它会产生潜在的误导性代码.但在实际水平上,它确实无关紧要 - 它们都做同样的事情,因此你不会通过使用任何一种来获得或失去任何东西.
使用enum它简单快捷
我不推荐使用enum或tinyint(1),因为bit(1)只需要1位来存储布尔值,而tinyint(1)需要8位.
REF
TINYINT vs ENUM(0,1)表示MySQL中的布尔值
虽然这是真的,bool并且tinyint(1)是在功能上是相同的,bool应该是更好的选择,因为它承载着你想要做什么语义。此外,许多ORM都将转换bool为编程语言的本机布尔类型。