144 votes

Boolean vs tinyint (1) pour les valeurs booléennes dans MySQL

Quel type de colonne est préférable d'utiliser dans une base de données MySQL pour les valeurs booléennes? J'utilise boolean mais mon collègue utilise tinyint(1) .

184voto

Māris Kiseļovs Points 6759

Pour autant que je sache, ces types de données sont des synonymes.

114voto

dj_segfault Points 6407

Je vais adopter une approche différente ici et suggérer qu'il est tout aussi important que vos collègues développeurs comprennent votre code que pour le compilateur / la base de données. Utiliser boolean peut faire la même chose que tinyium, mais cela présente l'avantage de transmettre sémantiquement votre intention, et cela en vaut la peine.

Si vous utilisez un tinyint, il n'est pas évident que les seules valeurs que vous devriez voir être 0 et 1. Un booléen est TOUJOURS vrai ou faux.

39voto

Spudley Points 85371

boolean n'est pas distincte de type de données dans MySQL, c'est juste un synonyme tinyint. Voir cette page dans le manuel MySQL.

Personnellement, je suggère d'utiliser tinyint comme une préférence, parce que booléenne ne fait pas ce que vous pensez que cela fonctionne à partir du nom, de sorte qu'il fait pour induire en erreur code. Mais au niveau pratique, il n'a vraiment pas d'importance -- ils font tous les deux la même chose, de sorte que vous n'êtes pas le gagner ou de perdre quelque chose en utilisant soit.

9voto

JapanPro Points 6278

utiliser enum son facile et rapide

Je ne recommanderai pas enum ou tinyint (1) car le bit (1) n'a besoin que de 1 bit pour stocker la valeur booléenne alors que tinyint (1) a besoin de 8 bits.

ref

http://stackoverflow.com/questions/3546186/tinyint-vs-enum0-1-for-boolean-values-in-mysql

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X