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 :

Lien avec doublons entre 2 tables


Sujet :

Modélisation

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Lien avec doublons entre 2 tables
    Bonjour,
    mon problème est que je voudrais lier 2 tables par un champs possèdant dans chacunes des tables des doublons. Quand je fait la liaison, un message m'indique qu'il n'y a pas d'index dans une table principale.
    J'ai essayer de mettre les champs utilisés comme indexé avec doublons mais ça ne fonctionne toujours pas.
    Quelqu'un aurait la solution?
    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello et bienvenue sur le forum
    ton problème semble un souci de liaison n à n qui ne peut se faire que par une table intermédiaire?
    néanmoins, je suspecte un manque d'analyse préalable, c'est pourquoi il serait judicieux de mieux nous renseigner sur la structure de tes tables
    A bientôt
    -------------------Simplifi----------comme si tout était simple--------

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour, merci pour l'accueil
    Pour la structure des tables, la 1ere se compose d'un n° auto (clé), d'un n° en numérique relié à une autre table, et de plusieurs autre champs (texte, numérique et case à cochées). Le champ qui m'intéresse pour la liaison est en texte sans interdiction de null, avec chaine vide autorisée, indexé avec doublons
    La 2e table contient 4 champs texte donc 2 forment la clé. Le champ qui m'intéresse pour la liaison a une interdiction de null, sans chaine vide autorisée, indexé avec doublons

  4. #4
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    donne nous encore un peu plus de renseignements, j'ai beaucoup de mal à me faire une idée de ta configuration!
    -------------------Simplifi----------comme si tout était simple--------

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Euh en fait la 1ere table comporte des données sur des traitements phytosanitaires appliqués sur différente surface. La clé auto est donc un n° de traitement. Ensuite il y a un n° de surface (lien vers une autre table) et des champs texte comportant le nom du produit, le mode d'épandage,...
    Pour une même surface, il peut y avoir plusieurs traitements phyto et dans la table le nom des produits est bien sur retrouvé plusieurs fois sur des surface différentes.
    La 2e table comporte un double clé avec le nom du produit phytosanitaire ainsi que les molécules associées. Le nom du produit et les molécules comportent donc des doublons. Le dernier champ de cette table est la dose de molécule active.
    J'espère être plus clair :s

  6. #6
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    je vois un peu mieux, c'est mon frère qui fabrique ce genre de base Access, c'est lui l'agriculteur, néanmoins, je vois mieux ton pb
    j'ai un peu l'impression que tu devrais éclater ta table des produits, en effet, chaque produit n'a qu'un seul nom et peut être d'autres caractéristiques uniques comme le fabricant ....
    par contre, ses propriétés devraient être dans une sous table qui comporte le nom de la caractéristique et sa valeur:
    Poduit - caractéristique - valeur - texte
    Prod1 - - Composant1 - - -10 - - - g/l
    Prod1 - - Composant2 - - - 150 - - g/l
    etc.

    Par contre, je ne vois toujors pas bien comment tu as exprimé ta requête pour qu'elle te renvoie un tel message?
    pour ça deux solutions: la copie d'écran en pièce jointe ou bien le texte SQL de la requête (qui permet de la reconstituer) sans oublier les balises de code (le # au dessus de la fenêtre)
    -------------------Simplifi----------comme si tout était simple--------

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oui j'ai déjà explosé la table des produits exactement comme tu l'a décrite. C'est ma 2e table.
    La 1ere table comporte just le nom commerciale du produit appliqué pr l'agriculteur, tout ça pour faire le lien.

    Sinon ce n'est pas une requête que je veux mais un simple lien entre les 2 tables.
    Je joind une copie d'ecran, ca me donne ça quand je fait un lien entre les tables "Traitements phytosanitaire" et "molécules...". Je voudrais en faite supprimer la table intermédiaire
    (Jme suis trompé dans le lien, c'est les champs "nom commerciales" des 2 tables qui sont liée. ici j'ai fait avec les molécules active, jme suis trompé mais ça donne la même chose)
    Images attachées Images attachées  

  8. #8
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Effectivement, si ta table intermédiaire ne comporte qu'un seul champ, elle est inutile, mais il serait interressant qu'elle comporte d'autres champs dant la valeur est unique pour le produit
    En faisant des essais chez moi, je me suis rendu compte que je ne formalise pas forcément toutes les relations entre tables et je n'ai réussi à obtenir le même message qu'après avoir demandé l'intégrité référentielle. ce qui ne t'empêche pas d'établir la relation.
    On peut quand même essayer de comprendre le principe de l'intégrité en farfouillant dans l'aide ou les tutos: à toi de jouer!
    -------------------Simplifi----------comme si tout était simple--------

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    ok merci beaucoup, je peux pas vraiment étoffer ma table intermédiaire, tout est dans la tables des molécules XD
    C'est vrai que je peux faire le lien sans l'intégrité mais j'aurai bien aimé l'avoir, c'est pour ça. Jvais chercher dans l'aide encore une fois^^ Merci beaucoup

  10. #10
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    c'est malheureusement dans le principe de l'intégrité référentielle:
    pour cela quand tu as doublecliqué sur une relation tape F1 et descend dans les explications tu trouvera
    Si l'application de l'intégrité référentielle vous pose des problèmes, notez que vous devez respecter les conditions suivantes :
    suivi de
    Le champ commun de la table primaire doit être une clé primaire ou posséder un index unique.
    ce qui ne te laisse aucun espoir d'appliquer l'intégrité là où tu le désires.

    Normal, en effet, avec une mise à jour en cascade, si tu changes le nom du coté 1, il est changé n fois du côté N, donc dans ton exemple quel traitement avec Glyfos provoquerait la mise à jour du coté N

    Ceci peut d'ailleurs être la seule justification de la table intermédiaire: la clef sur le nom du produit
    et dans ce cas, il faut ajouter chaque produit dans cette table avant de pouvoir l'utiliser dans les traitements ou même décrire ses propriétés
    -------------------Simplifi----------comme si tout était simple--------

Discussions similaires

  1. Requête avec doublons dans la table maître.
    Par SenSosistim dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/04/2008, 23h05
  2. Lister avec croisement entre deux tables
    Par wehtam dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/01/2008, 23h10
  3. [Débutant] select avec jointure entre 4 tables
    Par ulyssemac dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/11/2007, 19h39
  4. [Conception]Lien plusieurs à plusieurs entre trois table
    Par egg3774 dans le forum Modélisation
    Réponses: 5
    Dernier message: 20/04/2007, 17h44
  5. [Oracle] Recherche de doublons entre 2 tables
    Par Isa31 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/02/2006, 14h23

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