php – MySQL使用数字状态代码与文本

前端之家收集整理的这篇文章主要介绍了php – MySQL使用数字状态代码与文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

通常在我的项目(PHP / MysqL)中,我必须在某些数据库表中添加“status”字段.例如,标记任务是否已提交,已批准,已拒绝.

出于习惯,到目前为止我一直在使用数字状态代码(0代表提交,1代表批准,-1代表拒绝).出于某种原因,我认为服务器处理起来效率更高.

现在我想知道,我的假设有缺陷吗?有关系吗?为了便于阅读,将它们存储为VARCHAR会更容易,例如’SUBMITTED’,’APPROVED’,’REJECTED’.然后在PHP代码中而不是检查数值,检查字符串.

我很确定在理论上检查INT比String更快.但是,对于网络应用程序来说,这是不同的吗?

请指教.

谢谢

最佳答案
也许这只是一个偏好问题,但我讨厌没有明显意义的魔术数字.在这种情况下,通常有两种情况:

>价值观不太可能改变(例如,性别:男/女)
>价值可能会发生变化(例如,类别:本地/国家/体育……)

在第一种情况下,我更喜欢使用ENUM作为列类型.它在内部作为整数处理,但你将它称为字符串.

在第二种情况下,我创建一个主表并将子列定义为外键.这给了值的一些含义,即使它是一个自动递增的整数.并且它无论如何都不需要是整数.

猜你在找的MySQL相关文章