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

Langage SQL Discussion :

schema base de données-attribut en liste-


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut schema base de données-attribut en liste-
    Bonjour,

    Je préviens, je suis une Débutante donc désolé si ma question peut paraître bête!

    bref, je vais essayer de vous expliquer:

    J'ai un schéma de base de données à faire.... petite question :

    j'ai une table de MALADIE, cette table a un attribut VOIE CONTAMINATION ! ok, sauf que cette maladie peut avoir PLUSIEURS VOIES DE CONTAMINATION.
    en gros, maladie X a voie de contamination a, + voie de contamination b ... etc.

    Comment je représente ça ?

    Hypothése:

    je fais une table V_Contamination (id-vconta, type )
    et une 2eme table MAL_VConta( id_mal_vconta, id maladie, id_vconta)

    Je sais que c'est faux, mais c'est vraiment trop brouillon dans ma tête !!!!!



    Merci à vous

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    La modélisation d'une base de données relationnelle est la conséquence des règles de gestion.

    Si les règles de gestion sont les suivantes
    R001 : une maladie peut avoir zéro à plusieurs voies de contamination
    R002 : une voie de contamination concerne zéro à plusieurs maladies

    Alors la modélisation, au niveau conceptuel est la suivante
    MALADIE 0,n --- contaminer --- 0,n VOIE

    Ce qui donne 3 tables
    MALADIE (MA_id, MA_nom...)
    VOIE(VO_id, VO_nom...)
    CONTAMINER (MA_id, VO_id )

    Si par contre les règles de gestion sont les suivantes
    R001 : une maladie a une et une seule voie de contamination
    R002 : une voie de contamination concerne zéro à plusieurs maladies

    alors cela donne seulement 2 tables
    MALADIE (MA_id, MA_nom..., VO_id#)
    VOIE(VO_id, VO_nom...)
    Dans ce deuxième cas, la clef étrangère VO_id de la table MALADIE, permet de connaitre la voie de communication et d'en récupérer le libellé par jointure avec la table VOIE

    Dans votre cas, c'est le 1er modèle qui s'applique

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut cas n°1
    Merci de votre réponse!

    c'est le cas numero 1, avec les 3 tables.

    Mais du coup de je met pas de voies de contamination dans les attributs de MALADIE!?

    au faite on me demande de faire un schema du type:
    TABLE
    {attribut 1, type "commentaire}
    {attribut 2, type "commentaire}
    .
    .
    .

    ET si ya une clé etrangere, la mentionner dans le commentaire



    et SI je suis dans le cas numero 2: MALADIE qui peut avoir UNE et UNE seule "forme" , je sais quand c'est 1.1? on met clé étrangère dans le coté 1.1
    mais si j'essaye de suivre le schema que j'ai cité plus haut donc je vais mettre en commentaire OU je fais un autre "attribut" AVEC la clé etrangere




    C'est hyper bizarre !
    parceque le truc de base (le schema dans votre réponse) je sais le faire (enfin, je me débrouille)

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par HTIBM Voir le message
    Mais du coup de je met pas de voies de contamination dans les attributs de MALADIE!?
    Non, comme vous avez une relation entre MALADIE et VOIE dont les cardinalités maxi sont "n" de chaque coté, la relation devient une table (contaminer dans mon exemple) et c'est cette table qui permet de faire entre MALADIE et VOIE (grâce aux identifiants hérités de l'une et l'autre ENTITE-TYPE)


    Citation Envoyé par HTIBM Voir le message
    ET si ya une clé etrangere, la mentionner dans le commentaire
    Comme expliqué plus haut, il n'y a pas de FK avec vos règles de gestion. Il y aurait eu FK dans maladie si vous n'aviez qu'une seule voie de contamination possible
    La relation n-aire génère la table "contaminer" qui hérite, comme identifiant primaire, des identifiants des deux entités-types concourant à la relation.


    Concrètement, voici un exemple de requête qui liste toutes les voies de contamination possibles pour vos règles de gestion, avec l'exemple de mon post précédent
    Ici j'ai choisi des jointures OUTER pour lister les maladies, mêmes si elles n'ont aucune voie de contamination identifiée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select MA.MA_nom as maladie
         , VO.VO_nom as voie_contamination
    from MALADIE         as MA
    left join CONTAMINER as CO
      on CO.MA_id=MA.MA_id
    left join VOIE       as VO
      on VO.VO_id=CO.VO_id

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut MERCI !
    Merci beaucoup ! VRAIMENT

    J'ai tellement fait/refait le schema que je me suis perdue en route !

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    De rien :p

    Marquez en "résolu" si c'est le cas

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

Discussions similaires

  1. Tri sur une base de donnée avec une list box
    Par niamo dans le forum IHM
    Réponses: 5
    Dernier message: 26/05/2010, 12h07
  2. Schema base de donnée Netbeans 6.7.1/Mysql
    Par bipbip2006 dans le forum NetBeans
    Réponses: 0
    Dernier message: 13/05/2010, 01h37
  3. Base de données avec la liste des voies des communes et codes postaux ?
    Par [ZiP] dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 26/08/2009, 15h44
  4. Afficher le contenue d'une base de données dans une liste
    Par fdoncev dans le forum SharePoint
    Réponses: 3
    Dernier message: 16/07/2008, 18h00
  5. Réponses: 8
    Dernier message: 08/07/2008, 13h33

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