Quel type utiliser ? - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Quel type utiliser ? (/showthread.php?tid=3652) |
Quel type utiliser ? - MdE - 08-02-2009 Bonjour, J'ai une toute petite question qui me taraude concernant la bonne utilisation des différents types dans une base de données MySQL. Quel type utiliser pour un champs qui ne contiendra qu'une valeur booléenne (0 ou 1) ? Merci RE: [MySQL] Quel type utilisé ? - naholyr - 08-02-2009 Si on veut stocker un booléen, il vaut mieux utiliser le champ qui prendra le moins de place possible dans la table. http://dev.mysql.com/doc/refman/5.0/fr/storage-requirements.html En l'occurrence : - ENUM('0','1') ou ENUM('TRUE', 'FALSE') - TINYINT(1) prennent tous deux 1 octet, et sont donc de bonnes alternatives. Sinon, http://dev.mysql.com/doc/refman/5.0/fr/maxdb-reserved-words.html : Citation :BOOLEAN a été ajouté en MySQL version 4.1.0; c'est un synonyme de BOOL qui équivaut à TINYINT(1). Il accepte les valeurs entières dans la même plage que TINYINT ainsi que la valeur NULL. TRUE et FALSE peuvent être utilisés comme alias de 1 et 0.Tant qu'à faire, pour stocker des booléens, autant utiliser le type dédié RE: [MySQL] Quel type utilisé ? - MdE - 08-02-2009 Apparemment, le Tinyint(1) accepte quand même les chiffres jusqu'à 127 chez moi. Par contre, le Enum fonctionne bien, mais est-ce vraiment le mieux ? J'ai la version 4.1.9 de MySQL mais je n'ai pas de type BOOLEAN :/ EDIT: En fait, une donnée ne peut-elle pas occuper moins d'1 octet ? RE: [MySQL] Quel type utilisé ? - Ruz - 08-02-2009 a ma connaissance, impossible de descendre sous 1 octet avec MySql TinyInt(1), TinyInt(2), TinyInt(3),TinyInt(4) acceptent toutes les memes valeurs (testé, suffit d'encoder 999 dans des champs des 4 types, et regardez les valeurs mémorisées) Je n'ai tjs pas compris l'utilité de ce truc... Maintenant, pour le type, Boolean serait le meilleur choix (histoire de limiter les possibilités) maitnenant, si t'as pas, ben, voir un substitutif, comme déjà évoqué RE: [MySQL] Quel type utilisé ? - wild-D - 08-02-2009 ^^ A ce que je sais, le chiffre entre parenthèse dans la déf des types en mysql, n'a aucun impact sur la taille de stockage; ça ne sert que pour l'affichage, donc tinyint(1) ou tinyint(2) pourront stocker exactement les même données. perso j'utilise enum pour les donées "binaire" (vrai/faux) RE: [MySQL] Quel type utilisé ? - MdE - 08-02-2009 Ok merci, je vais faire comme toi alors. Merci à tous. |