使用枚举('y','n')而不是MySQL表中的布尔字段是不是很糟糕?

Gaz*_*ion 6 mysql

所以几年前我看到了由第三方开发的系统的DB模式,并注意到他们使用枚举('y','n')而不是布尔(tinyint)字段.我不知道为什么,但我非常喜欢它,我发现它让事情变得更容易阅读(我知道这完全是主观的),但我采用它并从此开始使用它.我想我可以换成"真"和"假",但是,我能说什么,我只是喜欢它.

现在有人说,以这种方式做事是否有任何挫折 - 除了可能有点讨厌在游戏后期进入的程序员?

lan*_*nzz 9

是的,这很糟糕.你失去了直观的布尔逻辑(SELECT * FROM user WHERE NOT banned变成SELECT * FROM user WHERE banned = 'n'),你在应用程序端接收字符串而不是布尔值,所以你的布尔条件也变得很麻烦.其他使用您的模式的人会看到类似标志的列名并尝试在其上使用布尔逻辑而被咬.