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

 MySQL Discussion :

Mise à jour de table associative


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2014
    Messages : 42
    Par défaut Mise à jour de table associative
    Bonjour,

    Débutant en gestion de base de données, je me questionne au sujet de la mise à jour des tables associatives.

    Dans un projet personnel, je souhaite mettre en place une base de données de livres, articles et magazines. Entre mes entités "Auteurs" et "Livres", j'ai une association dont les cardinalités maximales sont toutes deux égales à n, je dois donc créer une table associative.

    Tous mes documents sont rassemblés dans une arborescence de dossiers pour les catégoriser par thèmes, j'ai nommé chacun de mes fichiers (ouvrages) suivant le format : titre - prenom nom auteur - date de parution. Quand il y a plusieurs co-auteurs, j'ai pris le premier cité dans l'ouvrage. Une requête Power Query me permet ensuite d'exporter l'arborescence de mon dossier racine et d'obtenir, entre autres, la liste des titres et des auteurs sans doublon.

    Maintenant, pour avoir l'ensemble des co-auteurs de l'ouvrage, je dois compléter ma table auteur en ajoutant tous les co-auteurs (qui m'auraient jamais été auteur "premier cité") et créer ensuite ma table associative avec les identifiants (id_auteur, id_ouvrage). Mais avant de me lancer tête baissée dans l'écriture de cette table, je me pose le problème de sa mise à jour. En effet, suite à l'enregistrement d'un fichier par exemple, ma requête Power Query va insérer une ligne correspondant dans le tableau d'export relativement à sa position dans l'arborescence. Du coup, tout l'indiçage des tables, notamment la table associative est à refaire

    Avez-vous des méthodes à me proposer pour n'écrire qu'une seule fois la table associative (en tout cas) et avoir une mise à jour sécurisée ? Si vous avez des liens, des ressources ou des exemples sur lesquels je pourrais m'inspirer, je suis preneur.

    Ne sachant pas trop si je dois chercher du côté SGBD ou vers PowerQuery - Excel, je ne poste peut-être pas dans la bonne section du forum, du coup n'hésitez pas à le déplacer

    Merci par avance,

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Bonjour,
    Je ne vois pas pourquoi tu devrais modifier la table Auteur ici.
    L'auteur "principal" d'un ouvrage peut tout à fait être l'auteur 'secondaire" d'un autre ouvrage (même si pour ma part je trouve cette notion pour le moins "bizarre").
    Je pense donc que cette notion de rang doit être dans la table associative, avec comme clé unique L'id du livre et le rang si tu ne veux pas d'ex-aequo.


    Tatayo.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 617
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Tout comme Tatayo, je ne suis pas convaincu par la notion d'auteur principal, mais même s'il fallait la retenir, associer auteur et co-auteur indépendamment du livre n'a pas de sens.

    Voici ci-dessous un sujet sur la modélisation d'une base de données bibliothèque.
    https://www.developpez.net/forums/d2...cd-bdd-livres/

    La réponse n°3 propose un modèle "type" de MCD pour une bibliothèque de prêt
    La réponse n°13 se concentre sur la partie ouvrage et édition, en y ajoutant la notion de collection et en ignorant la partie prêt propre aux médiathèques.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2014
    Messages : 42
    Par défaut
    Bonjour,

    Je n'ai sans doute pas été assez clair. Je ne cherche pas du tout à avoir un "rang" parmi les auteurs.

    Je ne vois pas pourquoi tu devrais modifier la table Auteur ici.
    Cela vient de la manière de mettre à jour mes tables - mais peut-être qu'il y a mieux à faire.
    1. Au départ, tous mes fichiers sont enregistrés dans une arborescence de dossiers. Chaque nom de fichier est formaté suivant titre ouvrage - prenom nom - date de parution
    J'ai choisi Prenom et nom du premier auteur sur la couverture de l'ouvrage s'il y en a plusieurs.
    2. Par une requête Power Query, j'exporte l'arborescence à partir du dossier racine dans Excel, de cette manière, j'obtiens un tableau avec un nom de fichier par ligne.
    Une ligne ressemble à : chemin.1 - chemin.2 - chemin.3 - (...) - titre ouvrage - prenom nom - date de parution (Chaque "-" sépare une colonne)
    Si je viens enregistrer un nouveau fichier (je vérifie qu'il n'existe pas au préalable) dans mon arborescence, il va donc se positionner dans le tableau suivant son chemin : chemin.1 - chemin.2 ...
    3. Je sépare ensuite en deux tables les titres (uniques) et les noms d'auteurs, un code élimine les doublons pour ceux-ci. Je pourrais donc sans difficulté avoir une relation 1 auteur pour n ouvrages, et insérer une clé étrangère id_auteur dans ma table d'ouvrage.
    Mais dans ma construction, il me manque obligatoirement des auteurs, comme à chaque fois je n'ai renseigné que le premier. Je dois donc trouver un moyen de compléter ma table Auteurs et aussi créer mettre à jour la table associative entre Auteurs et Ouvrages.

    Comment procéder ? Est-ce que je dois complétement abandonner cette méthode de mise à jour et partir sur de nouvelles bases ?

    Et pour ce qui est l'export de l'arborescence, cela m'a semblé utile pour caractériser l'appartenance d'un ouvrage à une thématique, sous-thématique etc. et donc pour cela je pense arriver à la création d'une table intervallaire comme expliqué ici

    Merci par avance

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 617
    Billets dans le blog
    10
    Par défaut
    Votre méthode n'est pas la bonne, il faut l'abandonner : elle n'est pas fiable et contre-performante.

    Déjà, la plupart des auteurs écrivent sous un ou plusieurs pseudonymes, il faut en tenir compte, le pseudo est associé à l'ouvrage, les noms et prénoms sont invariants quelque soit l'ouvrage d'un même auteur.

    Ensuite, nom et prénom ça fait court pour identifier de façon certaine un auteur : il y a des synonymes (Alexandre Dumas père et fils pour ne citer que les plus célèbres). Attention donc à ne pas associer des ouvrages à de mauvais auteurs.

    Un ouvrage pouvant avoir plusieurs auteurs, il faut dès la création de l'ouvrage, lui associer le ou les auteurs, avec éventuellement un rôle (scénariste, illustrateur, coloriste...).
    Tenez compte aussi du fait que certains ouvrages n'ont pas d'auteur connu.

    Tenez également compte du fait qu'un titre n'est pas unique en soi, plusieurs auteurs ont pu écrire des ouvrages portant le même titre et un même titre peut faire l'objet de plusieurs tomes (ayant ou pas un sous titre...)

  6. #6
    Membre Expert
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 767
    Par défaut
    Bonjour,

    Tous les bons conseils donnés dans les messages ci-dessus conduisent à la nécessité absolue de, tout d'abord, bien construire le Modèle Conceptuel de Données.
    Les tables associatives (qui apparaitront dans le MLD) seront ensuite générées et traitées très naturellement.

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2014
    Messages : 42
    Par défaut
    Merci beaucoup pour vos indications, je vais donc abandonner l'idée de mettre à jour mes tables par une requête.

    @ Paprick Effectivement, j'ai commencé par construire un MCD qui a été bien amélioré au fil des messages dans ce post MCD bibliotheque

    Voici le MLD correspondant :
    Nom : MLD_Ouvrages.png
Affichages : 208
Taille : 28,0 Ko

    Je suis un peu rebuté par le nombre d'identifiants que je vois apparaître dans les tables, même si c'est sans doute normal qu'ils apparaissent. A ce stade, je peux commencer par remplir les tables correspondant aux entités (non issues d'une association) avec l'ensemble des enregistrements connus, ou y a-t-il une étape préliminaire ?

    PS : Je vais ajouter un ou deux attributs à Auteurs et Ouvrages pour lever toute ambigüité, même si pour la taille de ma BDD, je ne pense pas qu'il y en aura.

    Bonne soirée

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/12/2005, 22h32
  2. [ASE][12.0] Mise à jour de table
    Par Lps dans le forum Sybase
    Réponses: 9
    Dernier message: 09/12/2005, 14h28
  3. Programmer la mise à jour des tables attachées
    Par _developpeur_ dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 20h29
  4. Mise à jour des tables liées + TIMESTAMP
    Par Homegrown dans le forum Access
    Réponses: 11
    Dernier message: 25/04/2005, 21h52
  5. Mise à jour de table impossible après requête avec jointure
    Par sto dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/03/2004, 13h24

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