Qui MySQL type de données à utiliser pour le stockage des valeurs booléennes

Depuis MySQL ne semble pas avoir tout 'boolean' type de données type de données ne vous "abus" pour le stockage de vrai/faux renseignements dans MySQL?

En particulier dans le contexte de l'écriture et de la lecture à partir d'un script PHP.

Au fil du temps je l'ai utilisé et vu plusieurs approches:

  • tinyint, les champs varchar contenant les valeurs 0/1,
  • champs varchar contenant les chaînes de caractères '0'/'1' ou "true" /"false"
  • et enfin Champs de type enum contenant les deux options "vrai" /"faux".

Aucune de ce qui précède semble optimale. J'ai tendance à préférer le tinyint 0/1 variante, depuis la conversion de type automatique en PHP me donne des valeurs booléennes plutôt simplement.

Oui, de quel type de données utilisez-vous? Est-il un type conçu pour les valeurs booléennes j'ai négligé? Voyez-vous des avantages/inconvénients par l'utilisation d'un type ou d'un autre?

  • Toute personne qui est à la lecture de l'ancien réponses à cette question doit comprendre que MySQL ajouté un peu de type de données dans la version 5. Utiliser les informations que vous le pouvez. dev.mysql.com/doc/refman/5.0/en/bit-type.html
  • Première tinyint n'est pas un champ de type varchar comme vous l'implicite ci-dessus. Voulez-vous dire que bigint est un champ de type varchar trop? Deuxièmement, je recommande tinyint pour le stockage des champs booléens pas de raisons bien.
  • Question relative à l' Alternative à beaucoup de booléens dans MySQL?
  • pour la version actuelle de MYSQL de type Booléen est disponible dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html cochez cette. en fonction de cette valeur zéro considéré comme faux
  • selon le cas, par exemple, pour un deleted drapeau sur une table de message, j'utilise DATE NULL, donc je peux déjà l'utiliser pour stocker la date à laquelle il a été supprimé.
  • bit(1)est un peu** pour importer dans Excel. Commutation de tinyint(1) œuvres.
  • maintenant, nous avons boolean après 5 ans
  • Il y a deux demandes de fonctionnalités pour de vrai (pas de type tinyint alias) booléens, qui sont tous deux à environ 10 ans: bugs.mysql.com/bug.php?id=24530 et bugs.mysql.com/bug.php?id=24531. Je ne pouvais pas trouver un billet pour MariaDB, mais vous pouvez enregistrez-vous ici.

InformationsquelleAutor | 2008-11-14