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

Modélisation Discussion :

Relations multiples entre deux mêmes tables


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut Relations multiples entre deux mêmes tables
    Bonjour à tous,

    Je fabrique du carton multicouche. Un même carton peut contenir jusqu'à trois colles différentes (ou identiques). J'ai donc créé un champ par colle dans ma table Article (carton). J'ai une table Colles qui recense toutes les colles (une trentaine).

    J'ai besoin de sélectionner tous les produits en fonction d'un champ (oui/non) de la table Colles. C'est à dire que la table Colles doit être reliée d'une façon ou d'une autre aux trois champs colle de la table Article.

    Quelqu'un peut-il m'aider? Ca fait une semaine que je tatonne sur Access et je n'en peux plus.

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Bonjour,

    Les trois champs "colle" doivent être du même type que le champ identifiant les colles de manière unique (dans la table des colles).

    Exemple :
    Table Cartons
    ... divers champs
    Nom du champ : Colle1
    Type : Numerique Entier Long
    Nom du champ : Colle2
    Type : Numerique Entier Long
    Nom du champ : Colle3
    Type : Numerique Entier Long

    Table Colles
    Nom du champ : IdColle
    Type : Numerique Auto
    Nom du champ : NomColle
    Type : Texte
    ... divers champs

    Puis tu crées des liaisons entre la table cartons et la table colles pour chaque champs Colle1, 2 et 3 à IdColle de la table Colles.

    Lorsque tu vas faire la liaison tu devras insérer 3 fois la table Colles.

    Ps : mon conseil est de passer par une table intermédiaire qu'on appellera composition ou il y aura :

    IdCarton
    IdColle
    NumeroCouche (qui éventuellement pourra contenir la position colle/couche)

    Qui sera liée de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Cartons.IdCarton ---> Composition.IdCarton
                                   Composition.IdColle    ---------> Colles.IdColle
    Tu ne seras pas ainsi limité par 3 couches.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Bonjour loufab,

    En insérant trois fois la table Colle, il est impossible de faire une requête pour identifier tous les cartons qui utilise la même colle.
    De plus, une table intermédiaire m'obligerais à entrer des infos dans plusieurs table pour un même produit. Sachant que je dois entrer environ 300 nouveaux cartons par mois, s'ils contiennent tous trois colles, c'est ingérable.
    Y a t-il une solution?

    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Bonjour,

    Pourquoi ce serait impossible ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT carton.Champ1, colle.Champ2, colle_1.Champ2, colle_2.Champ2
    FROM ((carton INNER JOIN colle ON carton.Champ2 = colle.Champ1) INNER JOIN colle AS colle_1 ON carton.Champ3 = colle_1.Champ1) INNER JOIN colle AS colle_2 ON carton.Champ4 = colle_2.Champ1
    WHERE (((colle.Champ2) Like "cyanolite")) OR (((colle_1.Champ2) Like "cyanolite")) OR (((colle_2.Champ2) Like "cyanolite"));
    Dans l'exemple précédent j'ai bien tout mes cartons ou au moins l'une des couches est composée de la colle "cyanolite". (table carton : champ1=nom ; champ2 = couche1...) (Table colle : champ1 = idColle ; champ2 = nom de la colle)

    Pour ta 2ème interogation, effectivement si tu remplis toutes tes tables à la main c'est pas gagné, mais ACCESS n'est pas un tableur, il faut mettre une interface (formulaire) pour que ça soit exploitable.

    Une fois le formulaire (Carton) et son sousformulaire (Couche/colle) fait, la saisie devient minimale. Le Carton et la sélection d'une colle pour chaque couche.

    Le tout est de bien faire cette interface.

    Cordialement,

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Re,
    Est-ce qu'à partir d'un formulaire une même information peux se translater dans plusieurs tables?

    Tu as écrit:
    Cartons.IdCarton ---> Composition.IdCarton
    Composition.IdColle ---------> Colles.IdColle

    Les flêches indique la nature des relations?
    J'ai du mal avec le sens des relations. Je n'aurai pas fait comme ça. J'ai lu plusieurs truc sur les relations.
    Comment déterminer leur sens? Mes requêtes ne fonctionnent pas certainement pour ce problème.

    Merci

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Normalement le sens va de la table mere vers la table enfant.

    Carton vers Colle

    Certains traitements spécifiques peuvent t'obliger à, soit ne pas mettre de sens, soit de l'inverser. Dans ce cas lors de la conception de la requête tu efface la relation et tu la recrée dans le bon 'sens', sans que cela ne supprime celle inscrite à l'origine.

    Dans l'ensemble formulaire / sous formulaire il te suffit d'utiliser les propriétés Champs père/champs fils pour bénéficier de la recopie des clefs (id) à la création.

    Il est souvent obligatoire de compléter par du code (sql ou dao) pour certain traitement. Comme tu le vois ACCESS n'est pas aussi simple qu'on le pense, beaucoup de concept et techno rentre en compte.

    Cordialement,

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    L'information unique est dans la table colle, il y a plusieurs colles par carton et plusieurs cartons utilise la même colle. Je dois quand même faire la relation de la table carton vers colle?

    Merci

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    bien entendu !

    Ne mets pas l'intégrité référencielle.

    Cordialement,

  9. #9
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Merci loufab de t'être penché sur mon problème.
    Je vais tenter de régler mes problèmes. J'y réfléchi et je reviendrais avec une autre structure de base.

    Encore merci
    bonne continuation

Discussions similaires

  1. [CakePHP] Double belongsToMany entre deux mêmes tables.
    Par Gibob dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/04/2015, 11h35
  2. [2008] Left Outer Join entre deux mêmes tables
    Par jslpfasc2 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 10/03/2014, 16h10
  3. Relations multiples entre deux mêmes classes UML
    Par jolla dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 18/06/2011, 17h35
  4. [novice] relation fk entre deux tables
    Par localhost dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/10/2005, 06h33
  5. relation double entre deux tables
    Par thibautche dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/05/2005, 11h31

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