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

MS SQL Server Discussion :

Type d'un attribut


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 95
    Par défaut Type d'un attribut
    Bonjour,

    Je suis entrain de mettre en place une base de données sous Sql Server, j'ai un attribut performance qui peut prendre soit A soit B soit C, je ne sais pas quel type je dois donner à cet attribut (je n'ai pas trouvé enum), je peux lui donner char(1) mais je ne pourrai pas controller les valeurs de cet attribut.

    Et merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    En effet, vous pouvez créer un table du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE performance_level
    (
    	performance_level_id tinyint identity NOT NULL CONSTRAINT PKperformance_level PRIMARY KEY
    	, performance_level_label char(1) NOT NULL
    	, performance_level_description varchar(128)
    )
     
    INSERT	INTO dbo.performance_level (performance_level_label, performance_level_description)
    VALUES	('A', 'Niveau A')
    	, ('B', 'Niveau B')
    	, ('C', 'Niveau C')
    Puis référencer cette table par intégrité référentielle (clé étrangère) dans d'autres tables de votre base de données

    @++

  3. #3
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Vous auriez aussi pu ajouter une contrainte dans la définition de votre colonne limitant les valeurs à 'A','B' ou 'C'

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Effectivement cette 2eme solution est également valable.

    Si on supose que les valeurs peuvent changer ou évoluer, la solution donnée par Elsuket est alors plus facile à gérer par la suite. (ajout, modification ou suppression de la liste des valeurs à respecter dans une table avec contrainte de type clé étrangère).

    ++

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 95
    Par défaut
    Merci pour les réponses,

    je pense que meme la solution d'ajout d'une contrainte est facile à gérer par la suite; il suffit d'ajouter les valeurs qu'on veut accepter après.

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Tout dépend encore une fois de votre situation :-)

    Imaginez que vous ayez à modifier vos valeurs souvent et que vous vouliez le faire depuis votre application ...

    Il est plus simple dans ce cas d'avoir un formulaire de saisie qui vous permettra d'entrer, modifier ou supprimer vos valeurs dans la table de référence. Avec une contrainte de type CHECK, le processus de mise à jour depuis l'application sera plus compliqué.

    Cependant vous n'êtes peut être pas dans ce cas et auquel cas la solution proposée par iberserk est tout à fait adaptée à votre besoin.

    ++

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/09/2008, 18h36
  2. Refactor sur le type d'un attribut
    Par Zero dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 17/08/2006, 14h15
  3. Comment connaitre le type d'un attribut dans une table?
    Par Abdou_9002 dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/03/2006, 10h07
  4. changer le type d'un attribut dans une base oracle 8i
    Par vrossi59 dans le forum Oracle
    Réponses: 3
    Dernier message: 24/02/2006, 15h28
  5. Réponses: 1
    Dernier message: 25/11/2005, 20h40

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