par
naholyr » 27 mars 2007, 14:18
Attention ! Ne pas confondre le type ENUM et le type SET, ils n'ont pas le même objectif : un champ de type ENUM prend
une valeur parmi les possibles, un champ de type SET prend
une ou plusieurs valeurs parmi le possibles.
Pour la consistance des données et la cohérence du schéma, on utilisera plutôt un champ ENUM dès lors qu'on a un nombre très limité de valeurs possibles. Cela permet aussi de mettre des noms compréhensibles aux valeurs possibles. À ce propos il ne faut pas se gêner vu que ça prend toujours la même taille : que ton champ ENUM soit ('true','false'), ('oui','non') ou ('anticonstitutionnellement','tarabiscotément'), la taille de ta table sera la même
Certains sont adeptes du TINYINT, paraitrait-il que la recherche est moins couteuse avec un entier qu'un ENUM, je n'en suis pas convaincu.
Voir la doc :
http://dev.mysql.com/doc/refman/5.0/fr/enum.html
http://dev.mysql.com/doc/refman/5.0/fr/set.html
Attention ! Ne pas confondre le type ENUM et le type SET, ils n'ont pas le même objectif : un champ de type ENUM prend [b]une valeur parmi[/b] les possibles, un champ de type SET prend [b]une ou plusieurs valeurs parmi[/b] le possibles.
Pour la consistance des données et la cohérence du schéma, on utilisera plutôt un champ ENUM dès lors qu'on a un nombre très limité de valeurs possibles. Cela permet aussi de mettre des noms compréhensibles aux valeurs possibles. À ce propos il ne faut pas se gêner vu que ça prend toujours la même taille : que ton champ ENUM soit ('true','false'), ('oui','non') ou ('anticonstitutionnellement','tarabiscotément'), la taille de ta table sera la même ;)
Certains sont adeptes du TINYINT, paraitrait-il que la recherche est moins couteuse avec un entier qu'un ENUM, je n'en suis pas convaincu.
Voir la doc :
http://dev.mysql.com/doc/refman/5.0/fr/enum.html
http://dev.mysql.com/doc/refman/5.0/fr/set.html