IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

booléens en mySQL


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Par défaut booléens en mySQL
    bonjour à tous,
    avant de poser ma question, j'ai cherché si elle n'avait pas été résolue et je n'ai rien trouvé ... ça m'a paru bizarre :

    mysql ne dispose pas du type booléen ...
    alors que vaut-il mieux faire ?

    1) un champ de type énuméré (vrai, faux)
    2) un entier (tinyint ?) qui prendrait pour valeur 0 (faux) et 1 (vrai)

    1) est beaucoup mieux du point de vue conception, car c'est sans ambiguïté, mais est-ce pluis ou moins performant que 2) ?
    2) est plus ambigu (encore que ... tout le monde s'accorde à dire que 0=false et 1=true) et d'autre part, est-ce que tinyint n'autoriserait pas la valeur 3 ou 4 ???

    merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Par défaut
    Salut,


    Tu pourrais utiliser le type char !! Avec "OUI" ou "NON", je l'utilise moi même et ça marche super bien.

    voilà

  3. #3
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 665
    Par défaut
    Citation Envoyé par Samrock
    Salut,


    Tu pourrais utiliser le type char !! Avec "OUI" ou "NON", je l'utilise moi même et ça marche super bien.

    voilà
    oulala très mauvais idée !!!!
    déjà tu utilise 4 fois plus de place en mémoire et en plus tu ne peux pas mettre d'index donc tu ne peux optimiser ta base si tu en as besoin

    pour la question de nako je ne sais pas laquelle est la mieux mais personnellement j'utilise toujours "tinyint" et je n'ai pas encore eu de problème
    mais je suis prêt à utiliser "enum" si quelqu'Hun arrive à me convaincre

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Par défaut
    Citation Envoyé par mathix
    Citation Envoyé par Samrock
    Salut,


    Tu pourrais utiliser le type char !! Avec "OUI" ou "NON", je l'utilise moi même et ça marche super bien.

    voilà
    oulala très mauvais idée !!!!
    déjà tu utilise 4 fois plus de place en mémoire et en plus tu ne peux pas mettre d'index donc tu ne peux optimiser ta base si tu en as besoin

    pour la question de nako je ne sais pas laquelle est la mieux mais personnellement j'utilise toujours "tinyint" et je n'ai pas encore eu de problème
    mais je suis prêt à utiliser "enum" si quelqu'Hun arrive à me convaincre
    Tu peux utiliser "char" en n'enregistrant que "V" pour oui et "N" pour non. ça reviendrais au même

  5. #5
    Membre émérite Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Par défaut
    V pour oui et N pour non ???
    pas très logique dis moi ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Par défaut
    tu peux utiliser le format tinyint(1)
    0 pour non,
    1 pour oui, et vis-versa

  7. #7
    Membre émérite Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Par défaut
    ok, visiblement, ça me semble être la meilleure solution,
    tinyint avec 0 pour faux et 1 pour vrai.
    merci, mais comme le dit mathix, si quelqu'un a une meilleure solution ... je suis preneur

    (c'est quand même dingue que le type booléen ne soit pas disponible en mySQL )

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Par défaut
    Citation Envoyé par nako
    V pour oui et N pour non ???
    pas très logique dis moi ...
    Ben le "V" pour qu'il ne confonde pas le "O" avec le 0

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut Type BOOL
    En attendant que le type BOOL soit opérationnel, le type TINYINT est économique puisque encodé sur 1 octet (-128 à +127).
    Renseigne bien ton source pour expliquer que 0=FALSE et 1=TRUE, même si beaucoup de monde utilise ce pseudo-booléen.

    Ce serait effectivement plus logique de mettre "V" pour vrai et "F" pour faux ou "T" pour true et "F" pour false, mais si le code est bien renseigné....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] requête php sur base champ booléen MySQL
    Par dananchet dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 17/12/2013, 22h52
  2. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09
  3. Probleme C++Builder et Mysql
    Par noname dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 13h40
  4. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  5. [Kylix] Pb connection à Mysql
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 25/04/2002, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo