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

Requêtes et SQL. Discussion :

Requête par rapport à des relations


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Requête par rapport à des relations
    Bonjour,

    j'aimerai trouver réponse à mon problème si quelqu'un aurait la solution?

    Voila j'ai une base de donnée que j'ai créée avec 120 tables et je les ai relié entre elles par des relations au niveau des champ similaire.
    Par exemple la table 1 avec le champ "diamètre" est en relation avec la table 2 au niveau "diamètre".

    J'obtiens donc un mapping assez important avec ces 120 tables.

    mon soucis vient à ce moment là:

    J'aimerai avoir au final un état qui me dis j'ai modifié tel caractéristique dans telle table (ex: le diamètre dans la table 1) et l'état me donne toutes les tables parmi les 120 qui possédent une relation avec cette table et cette caractéristique.

    J'espère que je fus assez clair.

    Merci

    Bruno

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par chaytanbb Voir le message
    J'espère que je fus assez clair.
    Pas vraiment !

    Ce que je comprends :
    Tu souhaites interroger la base de données pour savoir dans quelle table tu as modifier une donnée.

    La seule manière que je vois est d'historiser les modifications.

    1ère méthode :
    Mettre une colonne DateModif dans chaque table.
    Ainsi tu peux savoir que tel enregistrement de telle table a été modifié à telle date. Mais tu ne sauras pas ce qui a été modifié.

    [U]2ème méthode :[U]
    Créer une ou plusieurs table d'historique ayant une structure de ce type :
    Historique(HistId, HistTable, HistColonne, HistLigneId, HistAncienneValeur, HistNouvelleValeur, HistDateModif, ...)

    HistTable est le nom de la table modifiée (ou mieux : son identifiant si tu as une structure de métadonnées).
    HistColonne est le nom de la colonne modifiée (donc la caractéristique modifiée).
    HistLigneId est l'identifiant de la ligne dans la table qui a été modifiée.

    J'ai créé un identifiant pour clé primaire mais tu peux aussi créer une clé primaire composée de (HistTable, HistColonne, HistLigneId, HistDateModif). Ajoute l'heure si une caractéristique peut être modifiée plusieurs fois par jour.

    Après c'est à ton programme Access d'alimenter la table... et de l'interroger ensuite pour retrouver l'historique des modifications.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    je vais tenter d'être plus clair:

    Ces 120 tables sont utilisés par un système autre que je ne gère pas.
    Le seul but de mon programme access est de derterminer les liens entre toutes ces tables.

    En gros quels sont les tables qui utilisent le champ "diamètre" ou "épaisseur"

    Au final je veux faire un état sans en modifier les tables, je ne m'interesse que'aux relations.

    Si je venais à modifier le "diamètre" de la table 12, quelles sont les tables en relations par rapport à ce champ.

    Déjà un exemple sur 2 tables serait utile.

    Comme celui la par exemple:

    Table 1 :
    champs : nom, epaisseur, diamètre

    Table 2 : titre, diametre, procédé

    Une relation existe entre les 2 champs " diamètre"

    But:
    Je modifie la caractéristique " diamètre " , access me donne les tables en relation , cad ici la table 2.

    est ce clair.

    Si tu peux m'aider pour l'exeemple

    merci

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    J'ai toujours un peu de mal à comprendre.

    Quelle association sémantique y a t-il entre le diamètre de la table 1 et celui de la table 2 ?

    Je peux supposer que la table 1 est une table de Produits et la table 2 est une table de procédés d'usinage par exemple. Si c'est le cas, on aurait le schéma :
    Produits -0,n---Utiliser----0,n- Procédés
    Mais j'ai du mal à voir en quoi le diamètre est ce qui relie les deux tables !

    Il est bien difficile de te répondre sans au moins un morceau du schéma de ta base de données et un cas concret de ce que tu cherches à obtenir.

    Je prends un autre exemple :
    Véhicules(LegId, LegPoids, ...)
    Meubles(MeuId, MeuPoids, ...)

    Dans les deux tables, j'ai le poids mais ils n'ont aucun rapport entre eux !

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Je comprend c'est difficile à expliquer.

    je te joins un exemple du mapping.

    Ces tables (sous excel actuellement) sont utilisés par les postes de production et actuellement lorsqu'un poste modifie une donnée il ne prévient pas les autres postes. Le système qui utilise les tables détecte des erreurs

    Je dois juste faire un mapping représentant toutes les relations entre les tables.

    Par exemple un poste après des réglages améliore le tps de cycle et change donc la valeur dans sa table.
    cependant cette même valeur est utilisée par un autre poste.

    Je dois donc dire si je touche à cette donnée, voici les tables en relation.

    Exemple Sur le fichier joint:

    Si je modifie un type de produit de la table commande client

    Access me renvoie toutes les tables en relation par rapport à cette caractérisitque: cad:

    TTH_TPS_ATTENTE
    TP_ESS_DUR_FREQ
    FOURNISSEUR_GREEN
    TP_GRADE_NUANCE
    TTH_TPS_FOUR
    Fichiers attachés Fichiers attachés

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Cette fois je comprends mieux le problème posé.

    Par contre sous Access, je ne sais pas comment le résoudre. Ça fait pas mal de temps que je n'ai plus travaillé avec Access.

    Une solution pourrait être de faire un système ressemblant à des métadonnées et recensant les relations entre les tables.

    Un schéma du style :
    Tables -0,n----Associer----0,n- Tables

    Associer serait porteur des informations sur les colonnes liées.

    On aurait donc un truc du style :
    Tables(TabId, TabNom, ...)
    Associations(AssTable1, AssTable2, AssColTab1, AssColTab2, ...)

    Dans Access 2003, tu peux aussi chercher du côté du menu Affichage/Dépendances d'objet...
    Il doit bien y avoir un moyen de récupérer ces infos par programme.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/11/2007, 15h27
  2. requête de validation par rapport à des dates
    Par zougna dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/04/2007, 13h45
  3. Réponses: 9
    Dernier message: 04/01/2007, 11h58
  4. [BDD] Rapidité par rapport à des méthodes
    Par nicotine002 dans le forum Langage
    Réponses: 9
    Dernier message: 07/06/2006, 10h23
  5. Html : liste de choix par rapport à des choix
    Par Djwaves dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/03/2006, 16h52

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