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

Schéma Discussion :

l'architecture de mes tables


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 31
    Points
    31
    Par défaut l'architecture de mes tables
    Bonjour à tous.

    Je vous explique mon problème et je m'excuse car le titre de mon sujet n'est pas très explicite.
    Pour le moment j'ai 3 tables que je vais nommer X, Y et Z qui sont liées entre elles.
    X peut avoir plusieurs Y qui elle même peut avoir plusieurs Z.

    Table X : id_X

    Table Y : id_Y, id_X

    Table Z : id_Z, id_Y

    j’espère ne pas vous avoir perdu jusque la ^^

    Mon problème est que je voudrais rajouter une table W qui pourra avoir plusieurs X qui elle même pourra avoir plusieurs Y etc....
    Mais dans ce cas dans ma table X, id_X pourra être associer à plusieurs id_W ce qui est impossible (sinon mon champs id_X pourra avoir plusieurs valeurs ...)

    Auriez vous des solutions pour palier a mon problème ?

    Je vous remercie par avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    L'abstraction n'aide pas à la compréhension du problème.

    Décrit ton cas réel, ce sera plus clair.

    Pour le moment, tu décris ce MCD :

    X -0,n----associer----1,1- Y -0,n----associer----1,1- Z

    Et, si j'ai compris, tu veux ajouter cette association :

    X -0,n----associer----1,1- W

    Ce qui donne ce schéma global :

    X -0,n----associer----1,1- Y -0,n----associer----1,1- Z
    |---0,n----associer----1,1- W

    Rien ne l'interdit a priori mais sans explication sur la sémantique des entités types et des associations, impossible de savoir si le schéma est valide ou pas.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    Merci CinePhil pour ta réponse.

    En gros pour le moment :
    - X peut avoir 1 ou plusieurs Y
    - Y peut avoir 1 ou plusieurs Z

    Je veux rajouter maintenant une table W qui pourra avoir 1 à plusieurs X.

    Si j'ai deux clients qui utilise le même X pour leurs W, cela veux dire que dans ma table X, mon champs id_W qui sera en clé secondaire aura les valeurs des W des 2 clients ce qui n'est pas possible.

    C'est la ou je cherche une astuce ( soit ajouter une nouvelle table entre les W et X, ou autre chose...)

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Danydan01 et Philippe,

    Je me permets de m'immiscer...

    Citation Envoyé par CinePhil
    Et, si j'ai compris, tu veux ajouter cette association :
    X -0,n----associer----1,1- W
    ==> il me semble comprendre que c'est l'inverse, car
    Citation Envoyé par Danydan01
    .../... je voudrais rajouter une table W qui pourra avoir plusieurs X .../...
    donc, passer de :
    X -0,n----associer----1,1- Y -0,n----associer----1,1- Z
    à
    W -0,n----associer----1,1- X -0,n----associer----1,1- Y -0,n----associer----1,1- Z

    non ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Oups... tu ajoutes une donnée, Danydan01
    Citation Envoyé par Danydan01
    qui utilise le même X pour leurs W
    ==> cela veut dire :
    W -0,n----associer----0,n- X -0,n----associer----1,1- Y -0,n----associer----1,1- Z
    Citation Envoyé par Danydan01
    C'est la ou je cherche une astuce ( soit ajouter une nouvelle table entre les W et X, ou autre chose...)
    ==> tu as trouvé toi même : une table associative pour gérer la relation n,n.

    W -0,n---[lier]---1,1 W_X
    et
    X -0,n---[lier]---1,1 W_X
    en quelque sorte...

    soit :
    W_X (#Id_W, #Id_X, ...)
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Bonjour Danydan01 et Philippe,

    Je me permets de m'immiscer...
    Citation Envoyé par CinéPhil
    Et, si j'ai compris, tu veux ajouter cette association :
    X -0,n----associer----1,1- W
    ==> il me semble comprendre que c'est l'inverse, car
    Citation Envoyé par Danydan01
    .../... je voudrais rajouter une table W qui pourra avoir plusieurs X .../...
    donc, passer de :
    X -0,n----associer----1,1- Y -0,n----associer----1,1- Z
    à
    W -0,n----associer----1,1- X -0,n----associer----1,1- Y -0,n----associer----1,1- Z

    non ?
    Au temps pour moi !
    Comme quoi j'avais raison en disant :
    Citation Envoyé par CinéPhil
    L'abstraction n'aide pas à la compréhension du problème.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Hum...
    Citation Envoyé par CinePhil
    L'abstraction n'aide pas à la compréhension du problème.
    ==> mine de rien, c'est un sacré débat philosophique, que cette phrase là !...

    L'abstraction n'aide pas à la compréhension de ce problème-ci, effectivement. Mais elle aide à la compréhension des problèmes de ce genre !... Est-ce à dire que la compréhension des macro-problèmes n'aide pas à la compréhension des problèmes particuliers faisant partie du groupe du macro-problème en question ?...

    Cela remettrait en cause les mathématiques, en général... qui sont "l'abstraction suprême", en quelque sorte...
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    L'abstraction, pourquoi pas, mais avec des règles de gestion correctement formées.

    En plus de lire l'article de mon blog sur ce sujet, lire la phrase en bleu de ma signature et en appliquer le principe !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Philippe,

    Entièrement d'accord !
    La remarque sur l'abstraction, en général, est, malgré tout, intéressante.

    Outre ton excellent article, je ne peux que conseiller à Danydan01 de garder, sous le coude, ton balayage exhaustif de tous les cas possibles de cardinalités. Ce billet aurait, je pense, donné à Danydan01 la solution à son problème.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    WoOoW un sacré débat qui se trame par ici durant mon absence
    Déjà je tiens a vous remercier pour vos réponses.

    Même si je pense qu'avec votre aide j'ai trouvé la solution a mon problème je vais vous détailler plus précisément mes tables.

    Jusqu'à présent mes utilisateurs ont la possibilité de créer des programmes, ses programmes possèdent des exercices qui eux mêmes possèdes des séquences ( donc X étant ma table programme, Y ma table exercice, et Z ma table séquence)

    Je vais donc maintenant créer une table cure (une cure possède 1 à n programmes) pour que les utilisateurs puissent créer leur propre séance.

    D'après vous il faut maintenant que je crée une table entre la table cure et programme pour évité que dans la table programme, un id_cure d'un programme et plusieurs valeur a la fois ?

    Je vous remercie par avance.

  11. #11
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Danydan01,

    Citation Envoyé par Danydan01
    .../... une cure possède 1 à n programmes .../...
    ==> 1 programme peut-il faire partie de 1 à n cures ?

    Il semble que oui, car :
    Citation Envoyé par Danydan01
    .../... qui utilise le même X pour leurs W .../...
    et
    Citation Envoyé par Danydan01
    .../... je voudrais rajouter une table W qui pourra avoir plusieurs X .../...
    .
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 31
    Points
    31
    Par défaut
    Bonjour Danydan01,

    Citation:
    Envoyé par Danydan01
    .../... une cure possède 1 à n programmes .../...
    ==> 1 programme peut-il faire partie de 1 à n cures ?
    Oui 1 programme peut faire partie de plusieurs cures, c'est la la question à mon problèmes.

    Si un programme fait partie de plusieurs cure, cela ne va pas bloquer ?

  13. #13
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Eh bien tu as la réponse dans un mail précédent où je disais que tu as trouvé toi-même. Donc :

    W -0,n----associer----0,n- X -0,n----associer----1,1- Y -0,n----associer----1,1- Z

    W -0,n---[lier]---1,1 W_X
    et
    X -0,n---[lier]---1,1 W_X
    en quelque sorte...

    soit :
    W_X (#Id_W, #Id_X, ...)
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Donc aujourd'hui, tu as ce MCD :
    programme -1,n----posséder----1,1- exercice -1,n----posséder----1,1- sequence

    Avec la cure, tu auras semble t-il ce MCD :
    cure -1,n----posséder----x,y- programme -1,n----posséder----1,1- exercice -1,n----posséder----1,1- sequence

    Reste à déterminer x et y, ce que ton message ne permet pas de faire mais Richard_35 émet une supposition suites aux messages antérieurs.

    dans la table programme, un id_cure d'un programme et plusieurs valeurs à la fois ?
    Si tu mets dans la table programme une clé étrangère référençant l'identifiant d'une cure, alors x et y valent 1 et cette clé étrangère ne peut évidemment prendre qu'une seule valeur, ce qui se traduit par la règle de gestion suivante :
    Une cure possède de un à plusieurs programmes et un programme n'est possédé que par une cure.

    Si cette phrase est fausse et que c'est plutôt cette règle de gestion qu'il faut traduire :
    Une cure possède de un à plusieurs programmes et un programme est possédé par une à plusieurs cures.

    Alors x vaut 1 et y vaut n et cela entraînera une table associative dont la clé primaire est composée des identifiants des deux tables en association :
    cure_posseder_programme (cpp_id_cure, cpp_id_programme)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [10 - XP] Faire un "start" pour créer mes tables
    Par noixennoc dans le forum Oracle
    Réponses: 8
    Dernier message: 30/01/2006, 23h56
  2. Probleme : je ne peut pas acceder a mes tables
    Par luciemacherie dans le forum Oracle
    Réponses: 3
    Dernier message: 16/01/2006, 10h21
  3. Réponses: 15
    Dernier message: 30/06/2005, 16h35
  4. comment vider mes tables a la fin
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 9
    Dernier message: 14/05/2005, 11h33
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16

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