MySQL 5星评级数据类型?

Dan*_*ing 5 mysql enums rating

ENUM('1','2','3','4','5')是产品评级的合理数据类型,必须介于1到5之间?

谢谢!

Dan*_*ite 9

是的,这将是一种适当的数据类型,因为它会强制执行您的域.

但是,如果要将它们一起添加(或执行任何其他数学运算),则数字数据类型可能会更好.

  • 确实,或者如果你打算平均它们.TINYINT可能更合适,只需确保限制应用程序中的值. (3认同)

Rol*_*man 9

我建议使用

TINYINT UNSIGNED NOT NULL
Run Code Online (Sandbox Code Playgroud)

或者,为了更好的ANSI/SQL兼容性,请使用:

SMALLINT NOT NULL
Run Code Online (Sandbox Code Playgroud)

使用整数类型,进行计算要容易得多.ENUM也不错,但是有可能搞得一团糟,因为它是一种双字符串/ int类型(在封面下面,它是一个int,但从外面来看,它是一个字符串).事实上,假设你确实觉得有必要去3星,或者10星左右,那么迁移将会更加痛苦.