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)
.
Réponses
Trop de publicités?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.
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.
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