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 :

[CONCEPTION] croisement attributs de plusieurs tables


Sujet :

Modélisation

  1. #1
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut [CONCEPTION] croisement attributs de plusieurs tables
    Bonjour à tous,

    Je me dois de réunir en une seule tables plusieurs attributs. Or, ces attributs appartiennent à plusieurs tables différentes. J'ai fait une requête mais ça ne va pas car ma base devient trop lourde dans ce cas (répétition d'un champ contenant beaucoup de texte...).

    Si quelqu'un sait comment créer une table en allant piquer des attributs dans d'autres tables, qu'il me fasse signe. Ce serait très très agréable.

    J'espère ne avoir été trop flou.


    En attendant vos réponses,
    je vous remercie.

  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 028
    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 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Bonjour,

    Si par "attribut" tu veux parler de champs la méthode de la requête semble être la seule.

    Peut-être que si tu étais plus flou ou moins précis dans ton explication nous y verrions plus clair. Surtout en précisant quel est ton but.

    Cordialement,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 38
    Points
    38
    Par défaut
    Une idée:
    Tu fabrique une requete création de table pour obtenir les éléments qui t'interessent. Cette table remplacera les tables en cours soit dans ta base soit dans une autre base. Si les tables initiales sont des tables supposer évoluer tu crée une requête ajout pour ajouter les enregistrement.

    Mais sans savoir ce que tu veux faire celà semble difficile de t'aider.

    Marmotine: Marmotte mutine

  4. #4
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    Merci pour vos réponses. J'ai essayé marmotine mais j'ai planté mon ordi. Je peux enfin répondre (maudit access 2000!).

    Je l'explique.

    je travaille sur une base de données juridique que je bascule sur Access. J'importe mes fichiers html pour en faire des tables et je crée les relations. Ensuite, on me demande de faire une requête qui servira à l'exportation d'un fichier word (modèle pour sortir les sentences juridiques comme ils le désirent).

    La requête en question fait intervenir trois ensembles :

    1 : les références
    2 : les descripteurs
    3 : le sommaire

    l'ensemble 1 renvoit à la table "référence"
    l'ensemble 2 renvoit à la table "drescripteur"
    l'ensemble 3 renvoit aux tables "thème", "sous-thème" et sous-sous thème"

    champs de "descriptif" : n° de référence, texte descriptif
    champs de "référence" : n° de référence, n° de thème, n° du ss thème, n° du ss-ss thème
    champs de thème : n° thème, descriptif du thème
    champs de sous thème : n° sous thème, descriptif du sous thème
    champs de sous-sous thème : n° sous-sous thème, descriptif du sous-sous thème

    il faut que je regroupe tous ces éléments. Je fais alors une requête. Mais, c'est trop lourd selon mon responsable car le texte descriptif est trop important et, comme plusieurs milliers de références lui font appel, mon ordi bug.

    Il faut alors que je crée une table regroupant tous ces attributs et sans que les liens soient perdus. Ceci permetteraient que les textes descriptifs soient cités une seule fois chacun et non plusieurs centaines de fois.


    Mon responsable est persuadé que c'est possible. J'ai des doutes car j'ai jamais rassemblé des champs de différentes tables dans une nouvelle table (dans une requête, oui, mais pas dans une table !).

    Voilà, j'espère avoir éclairci mon propos.

    Encore pardon.

    Si quelqu'un a une idée... merci d'avance...


    Un documentaliste désoeuvré

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    si j'ai bien compris tu as une unique base de donnée avec plusieurs tables dont tu voudrais faire une requete.
    mais tu as un problème: ta requete est inexploitable car tu as un champ 'descriptif' trop volumineux et cela le ralenti trop voir plante ton ordi.

    tu souhaite donc crée une copie des résultats de ta requete dans une table pour accélérer la consultation des données.

    mais puisque ton ordi plante sur ta requete, tu cherche une méthode pour le faire à sa place et mettre les résultats dans une table.

    es ce bien cela?

    si c ca je dirais que c possible en codant mais ce n'est pas une bonne solus car tu dois remettre à jour cette table à chaque changement à moins de ne plus travailler qu'avec cette nouvelle table et donc de tout reconcevoir.

    pour moi je ne vois pas l'utilité d'avoir cette table, ton problème est au niveau de ta requete.
    à ta place je travaillerais avec deux requetes:
    une requete A: contenant uniquement tes clefs primaires (n° référence,n° de thème, n° du ss thème, n° du ss-ss thème) avec leur liaisons
    une requete B: contenant le résultat A lié à leur 'descriptifs' respectifs

    je pense qu'ainsi le moteur ne plantera plus à associer des centaines de fois des champs qui n'ont pas lieu d'être
    mais j'suis pas le concepteur du moteur donc à vérifier...

  6. #6
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    Bon jour à tous et merci pour la réponse. J'ai vraiment progressé dans l'amélioration de ma base et surtout dans ma recherche de solutions !!!

    j'ai donc fait le travail en plusieurs étapes c'est à dire en plusieurs requête et plus une seule. J'ai fait trois requêtes en réalité et non deux comme tu me l'as conseillé.

    Requête 1 : je croise les numéros de références, les thèmes, sous-thèmes et sous-sous thèmes
    Requête 2 : je croise les sentences avec ce que j'ai obtenu au-dessus
    Requête 3 : je croise les descriptifs avec tout ce que j'ai pu obtenir après la deuxième étape

    Le raisonnement est excellent et me permet d'y arriver.

    Mais, c'était trop beau !!!

    dès la requête 1, j'ai un souci. La liaison est assurée entre les tables références, thème, sous-thème mais pas avec la table sous-sous thème. En effet, la requête me ressort tous les champs du sous-sous thème alors que je ne lui en demande qu'un seul !!! celui du sous-thème en question.

    Si quelqu'un voit d'où cela peut venir, je le remercie d'avance...

    j'ai vérifié mes relations : tout tient debout...

    bref, c'est la mouise

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    il existe pour les requêtes une clause group by qui devrait t'aider

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    effectivement à chaque requete tu dois faire un regroupement c'est ce travaille qui va limiter la duplication en centaine de fois:
    quand tu exécute qu'une seul requete il te crée toutes les liaisons possible ensuite il les filtres toi tu les filtres (par group by) et puis tu fait la liaison sur les données 'lourd' après.

    En effet, la requête me ressort tous les champs du sous-sous thème alors que je ne lui en demande qu'un seul
    tu comprends mieux pourquoi sa plante quand tu rajoute les champs 'lourds'

  9. #9
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    merci, merci mais j'ai constaté que j'ai fait une erreur non pas de manipulation mais d'interprétation. Je vous explique : je remet à jour de très vieux fichiers du conseil d'Etat d'Uruguay et... je viens de me rendre compte que la base de données que l'on m'a fourni il y a deux semaines est... un SGBD !!! et non un SGBDR... j'ai honte voilà e que c'est de ne travailler que sur des SGBDR de notre génération...

    C'est une bonne leçon en tout cas.


    Merci de vos efforts.



    camille

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

Discussions similaires

  1. Conception modèle en étoile: plusieurs tables de faits?
    Par Edna24 dans le forum Conception/Modélisation
    Réponses: 2
    Dernier message: 19/05/2009, 12h15
  2. [Conception] Affichage d'une requete sur plusieurs tables
    Par djinko dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/04/2007, 14h43
  3. [Conception] Une ou plusieurs tables
    Par spawns dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/08/2006, 11h23
  4. Réponses: 2
    Dernier message: 07/08/2006, 20h27
  5. [conception] champs vides ou plusieurs tables ?
    Par in dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 17/02/2004, 08h41

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