MySQL五星级数据类型?

MySQL五星级数据类型?,mysql,enums,rating,Mysql,Enums,Rating,ENUM('1'、'2'、'3'、'4'、'5')对于必须介于1和5之间的产品评级是合理的数据类型吗 谢谢 是的,这将是一种合适的数据类型,因为它强制您的域 但是,如果要将它们一起添加(或执行任何其他数学运算),则数字数据类型可能更好。我建议使用 TINYINT UNSIGNED NOT NULL 或者,为了更好地兼容ANSI/SQL,请使用: SMALLINT NOT NULL 对于整数类型,进行计算要容易得多ENUM还不错,但可能会出现混乱,因为它是一种双字符串/int类型(在封面下,它

ENUM('1'、'2'、'3'、'4'、'5')对于必须介于1和5之间的产品评级是合理的数据类型吗


谢谢

是的,这将是一种合适的数据类型,因为它强制您的域

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

我建议使用

TINYINT UNSIGNED NOT NULL
或者,为了更好地兼容ANSI/SQL,请使用:

SMALLINT NOT NULL

对于整数类型,进行计算要容易得多
ENUM
还不错,但可能会出现混乱,因为它是一种双字符串/int类型(在封面下,它是int,但从外部看,它是字符串)。事实上,假设你确实觉得有必要去3颗星或10颗星左右,迁移的痛苦会小得多。

确实如此,或者如果你打算平均它们。TINYINT可能更合适,只需确保您在应用程序中约束了值。啊,很好,谢谢!例如,如果我想计算一个产品枚举的平均评级,这将是一个错误的选择,对吗?我是否应该使用int并通过编程将输入限制在1&5>@Jordan之间,我的想法正好如此。如果您有一个固定的文本列表,并且没有数字列表,ENUM将非常出色connotation@Danny金-是的,当然。星星是一个展示的问题。但就数据而言,你实际上是在“开始计数”。因此,整数类型是完全合适的。