/ / Comment gérer .1 & .10 avec MySQL & Rails - mysql, ruby-on-rails, conception de bases de données, structures de données

Comment faire face à .1 & .10 avec MySQL & Rails - mysql, ruby-on-rails, base de données-design, structures de données

J'ai actuellement une base de données MySQL avec une table qui a un champ qui est tapé comme un nombre décimal.

Actuellement, il existe des valeurs allant de * .1 à * .9, mais nous devons maintenant pouvoir gérer les éléments suivants:

Je dois pouvoir ajouter * .10 à ce champ et le trier en conséquence.

Dans ce cas d'utilisation, 10 N'EST PAS égal .1!

Je dois pouvoir utiliser cette valeur dans Rails et la générer correctement.


Y a-t-il un moyen de contourner ce problème qui me manque ou dois-je le diviser comme suit:

Divisez le champ en deux:

2.1 -> 2 et 1

2.10 -> 2 et 10


Merci d'avance!

Réponses:

2 pour la réponse № 1

Vous devez soit le scinder en deux champs ouremplacez-le par un champ CHAR de longueur suffisante (l'option à deux champs est probablement préférable du point de vue de la comparaison). Un champ décimal ne peut pas faire la différence entre 2.1 et 2.10 car il s’agit du même nombre.