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

  1. #1
    Membre éclairé 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
    Points : 663
    Points
    663
    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
    Nouveau membre du Club
    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
    Points : 34
    Points
    34
    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 éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    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
    Nouveau membre du Club
    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
    Points : 34
    Points
    34
    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 éclairé 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
    Points : 663
    Points
    663
    Par défaut
    V pour oui et N pour non ???
    pas très logique dis moi ...

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

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

  7. #7
    Membre éclairé 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
    Points : 663
    Points
    663
    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
    Nouveau membre du Club
    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
    Points : 34
    Points
    34
    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 régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Points : 89
    Points
    89
    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