04-01-2015, 06:47 PM
Je suis d'accord de mettre UNSIGNED dans le typage de colonne, mais le abs(), je suis contre: si la valeur stockée dans la BDD est positive, alors tout va bien et le abs() est inutile. Si la valeur stockée est négative, alors il y a eu un problème en amont: pourquoi prendre la valeur absolue d'une somme négative d'argent? Cela ne fait pas sens.
Le mieux est de stocker la donnée en UNSIGNED, et d'effectuer un test (si on le souhaite) pour s'assurer que la valeur retournée est positive. Si le test échoue (valeur négative), on lance une exception que l'on rattrape ailleurs pour corriger le tir.
Passer par la valeur absolue, c'est prendre l'énorme risque de rater les erreurs, et de croire à tort qu'on les a corrigées alors qu'on a juste pris la valeur absolue d'un truc qui n'a pas de sens.
Le mieux est de stocker la donnée en UNSIGNED, et d'effectuer un test (si on le souhaite) pour s'assurer que la valeur retournée est positive. Si le test échoue (valeur négative), on lance une exception que l'on rattrape ailleurs pour corriger le tir.
Passer par la valeur absolue, c'est prendre l'énorme risque de rater les erreurs, et de croire à tort qu'on les a corrigées alors qu'on a juste pris la valeur absolue d'un truc qui n'a pas de sens.