mysql - 使用 enum ('y' ,'n' ) 而不是 MySQL 表中的 bool 字段是否不好?

标签 mysql

几年前,我看到了一个由第 3 方开发的系统的数据库模式,并注意到他们使用 enum('y','n') 而不是 bool (tinyint) 字段。我不知道为什么,但我非常喜欢它,我发现它让事情更容易阅读(我知道这完全是主观的)但我采用了它并从那时起开始使用它。我想我可以将它换成“真”和“假”,但我能说什么呢,我只是喜欢它。

话虽这么说,但以这种方式做事是否有任何挫折——除了可能会让迟到的程序员有点恼火之外?

最佳答案

是的,这很糟糕。你失去了直观的 bool 逻辑(SELECT * FROM user WHERE NOT banned 变成了SELECT * FROM user WHERE banned = 'n'),你收到的是字符串而不是 bool 值您的应用程序端,因此您的 bool 条件也变得很麻烦。使用您的模式的其他人会因为看到类似标志的列名称并尝试在它们上使用 bool 逻辑而受到攻击。

关于mysql - 使用 enum ('y' ,'n' ) 而不是 MySQL 表中的 bool 字段是否不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882454/

相关文章:

mysql - 更新最后一条记录——在 mysql 查询中找不到语法错误

mysql - SQL查看所有重复项?

mysql - 当我选择 MAX(updated_date) 时,其他列的值错误

python - 尝试将数据插入 SQL 数据库。错误 1046 未选择数据库

mysql - 斯芬克斯 : How to set the matchMode on the mysql client

java - ERROR : java. sql.SQLSyntaxErrorException:您的 SQL 语法有错误;

php - Mysql查询查杀脚本

MySQL 查询表已满

javascript - 如何将捕获的签名图像保存到 MySQL

sql - 在单个 SQL 查询中获取两个下一个和两个前一个条目