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

Oracle Discussion :

Champs statut VARCHAR ou NUMBER?


Sujet :

Oracle

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut Champs statut VARCHAR ou NUMBER?
    Bonjour,

    Juste une petite question concernant les méthodes de conception d'une DB..
    Lorsque l'on crée une table où l'on a besoin d'un champs.. STATUT par exemple.
    Est-ce préférable de choisir un type NUMBER ou VARCHAR ?

    Style :
    Number : 0 = pas confirmé, 1 = confirmé et donc mettre un CHECK .. IN(0,1)
    ou alors plutôt
    VARCHAR2 : CHECK .. IN('CONFIRMED','UNCONFIRMED') ..

    Ou est-ce qu'on s'en fout tout simplement ?

    Je ne vois pas de différences point de vue performances.. juste une meilleure compréhension lorsque l'on regarde la DB dans le cas du VARCHAR2..

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Le seul intérêt du number c'est d'économiser quelques octets

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Parfois quelque octets ici quelques la peut compter. Imaginez la modification de votre table qui contient quelques millions des lignes pour ajouter la colonne statut avec une valeur par défaut.

  4. #4
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Donc vous privilegeriez plutôt le NUMBER ?

    L'inconvénient je trouve c'est vraiment le manque de clarté, il faut se plonger dans le côté niveau développement pour se rendre compte réellement de la signification des valeurs.

    Enfin.. vous me direz.. il est toujours possible de commenter les colonnes

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ou bien choisir le nom de la colonne plutôt que status, confirmed peux suffire à mieux comprendre

    mnitu on est d'accord

  6. #6
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Oui bien sûr, c'était ici à titre d'exemple, il y a plus de statut que les deux que j'ai cité plus haut

    Ok ok merci à vous pour vos réponses !

    Bonne journée.

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Si vous optez pour le nombre, vous pouvez même le déclarer en NUMBER(1).
    Si votre modèle peut évoluer sur plus de deux valeurs, n'hésitez pas à faire une table de référence (en IOT, le surcoût sera très faible).

  8. #8
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par libuma Voir le message
    Donc vous privilegeriez plutôt le NUMBER ?
    ...
    Non, je n'ai pas dit ça. J'ai dit que parfois, dans votre décision vous devez prendre en compte des autres facteurs.

  9. #9
    Membre averti Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Points : 433
    Points
    433
    Par défaut
    Et un VARCHAR2(1) avec C pour Confirmed et U pour Unconfirmed pourrait être une solution intermédiaire ?!

  10. #10
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par macben Voir le message
    Et un VARCHAR2(1) avec C pour Confirmed et U pour Unconfirmed pourrait être une solution intermédiaire ?!
    Pas très parlant un caractère..
    Dans ce cas pourquoi ne pas plutôt utiliser simplement un NUMBER? :o

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par libuma Voir le message
    Pas très parlant un caractère..
    Dans ce cas pourquoi ne pas plutôt utiliser simplement un NUMBER? :o
    Ouais et j'ajouterais que l'on doit gérer la casse, voir l'accentuation... Bref, du trouble pour pas grands avantages, à mon sens !

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

Discussions similaires

  1. Convertir champ type Varchar en Date ?
    Par link.80 dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/07/2009, 10h26
  2. Conversion de varchar en number
    Par nathieb dans le forum PL/SQL
    Réponses: 7
    Dernier message: 24/10/2008, 12h03
  3. Conversion varchar en number
    Par nabelou1 dans le forum SQL
    Réponses: 12
    Dernier message: 15/05/2008, 18h59
  4. varchar ou number ? Erreur de syntaxe number ?
    Par Hydrae dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 16/08/2007, 15h17
  5. concaténer par GROUP BY des champs text/varchar
    Par Fredobdx dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/07/2005, 14h44

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