Будет ли ENUM ('1', '2', '3', '4', '5') надежным типом данных для оценки продукта, который должен быть от 1 до 5?MySQL 5-звездный тип данных?
Спасибо!
Будет ли ENUM ('1', '2', '3', '4', '5') надежным типом данных для оценки продукта, который должен быть от 1 до 5?MySQL 5-звездный тип данных?
Спасибо!
Да, это был бы подходящий тип данных, поскольку он применяет ваш домен.
Если вы собираетесь добавить (или выполнить любую другую математическую операцию) вместе, то числовой тип данных может быть лучше.
Я предлагаю использовать
TINYINT UNSIGNED NOT NULL
или, для лучшей совместимости ANSI/SQL, использование:
SMALLINT NOT NULL
С целочисленного типа, гораздо проще делать расчеты. ENUM
не плохо, но есть потенциал испортить, потому что это своего рода двойной тип string/int (под обложками, это int, но снаружи, это строка). И действительно, предположим, что вы чувствуете необходимость идти на 3 звезды, или 10 звезд или около того, миграция будет гораздо менее болезненной.
Действительно, или если вы намеревались усреднить их. TINYINT, вероятно, более уместен, просто убедитесь, что вы ограничиваете значения в своем приложении. –
Ах спасибо, спасибо! Так, например, если бы я хотел рассчитать средний рейтинг для перечисления продукта, это был бы плохой выбор, не так ли? Должен ли я просто использовать int и программно ограничить ввод между 1 и 5> –
@ Jordan, мои мысли точно. ENUM действительно сияет, если у вас есть фиксированный список текстов, и нет числовой коннотации –