ENUM ('1', '2', '3', '4', '5') serait-il un type de données sensé pour une classification de produit qui doit être comprise entre 1 et 5?MySQL 5-star rating type de données?
Merci!
ENUM ('1', '2', '3', '4', '5') serait-il un type de données sensé pour une classification de produit qui doit être comprise entre 1 et 5?MySQL 5-star rating type de données?
Merci!
Oui, ce serait un type de données approprié car il applique votre domaine.
Si vous voulez ajouter (ou effectuer d'autres opérations mathématiques) ensemble, cependant, un type de données numérique peut être meilleur.
Je suggère d'utiliser
TINYINT UNSIGNED NOT NULL
ou, pour une meilleure compatibilité ANSI/SQL, utilisez:
SMALLINT NOT NULL
Avec un type entier, il est beaucoup plus facile de faire des calculs. ENUM
n'est pas mauvais, mais il y a un risque de gâchis car c'est une sorte de double string/int (sous les couvertures, c'est un int, mais de l'extérieur, c'est une chaîne). Et en effet, si vous ressentez le besoin d'aller à 3 étoiles, ou 10 étoiles ou plus, la migration sera beaucoup moins douloureuse.
En effet, ou si vous aviez l'intention de les faire la moyenne. TINYINT est probablement plus approprié, assurez-vous juste de contraindre les valeurs dans votre application. –
Ah bon point merci! Donc, par exemple, si je voulais calculer la note moyenne pour un produit enum serait un mauvais choix, non? Dois-je juste utiliser un int et contraindre par programmation l'entrée à entre 1 & 5> –
@Jordan, mes pensées exactement. ENUM brille vraiment si vous avez une liste fixe de textes, et il n'y a pas de connotation numérique –