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

Looping Discussion :

Problème de nom de clé étrangère avec entité fictive


Sujet :

Looping

  1. #1
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 011
    Points : 23 692
    Points
    23 692
    Par défaut Problème de nom de clé étrangère avec entité fictive
    Bonjour,

    Voici un extrait de modèle conceptuel fait sous Looping 4 :
    Nom : Sélection_001.png
Affichages : 161
Taille : 51,1 Ko

    Et voici le MLD correspondant créé par Looping :
    Nom : Sélection_002.png
Affichages : 144
Taille : 48,5 Ko

    Le problème se situe au niveau de la table de passage COL_PROTOCOLE, où la donnée issue de l'entité fictive VALIDITE est automatiquement nommée VALIDITE_1 par Looping.
    Pourtant, je n'ai pas spécifié de suffixe à la clé étrangère dans la patte vers VALIDITE dans le MCD.
    Le problème semble venir de la relation VALIDER entre COLONNE et VALIDITE, qui génère bien une clé étrangère VALIDITE dans COLONNE.
    Si j'enlève cette relation, alors VALIDITE_1 se renomme en VALIDITE dans la table de passage COL_PROTOCOLE.
    Comment faire pour supprimer le suffixe _1 ?

    Merci d'avance,

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    Bonjour Ced,

    Quand une colonne est présente plusieurs fois dans une même table du MLD, le suffixe _1 est ajouté par défaut à l'une d'entre elles.
    C'est le cas par exemple avec les associations réfléxives de type parent enfant.
    Je soupçonne donc que l'une des entité-types concourant à l'association (protocoler) qui donne la table "COL_PROTOCOLE" (si j'ai bien compris) est identifiée relativement à l'entité-type [VALIDITE], or, comme cette entité-type [VALIDITE] participe aussi à l'association, on a bien deux fois la même colonne.
    Pour avoir un nom plus parlant que ce simple suffixe, il faut cliquer sur le lien d'association concerné pour attribuer un nom particulier

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 011
    Points : 23 692
    Points
    23 692
    Par défaut
    Bonjour escartefigue,

    Merci pour la réponse.
    J'ai effectivement oublié de dire qu'attribution du nom à la clé étrangère sur la patte était, dans le cas présent, sans aucun effet (ni même ajouter un suffixe).

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    Pourtant, avec Looping V4 dans ce cas de figure, j'obtiens bien le nom souhaité :

    Nom : Sans titre.png
Affichages : 127
Taille : 14,3 Ko

    Après, trouver un cas fonctionnel ou E1 et E2 identifié relativement à E1 participent tous les deux à une asso ternaire, j'ai du mal à l'imaginer...

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

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Bonjour,

    Je viens de reproduire le phénomène et, effectivement, Looping devrait mieux réagir en cas d'entités fictives :
    • Même s'il est vrai que VALIDITE se promène un peu dans toutes les clés, il n'est présent qu'une fois dans COL_PROTOCOLE et le suffixe _1 pourrait donc être évité.
    • De plus, le suffixe ou le remplacement des clés étrangères n'est pas pris en compte dans le cas d'entité fictives : il est vrai que VALIDITE n'est pas vraiment une clé étrangère, mais Looping pourrait quand même la renommer.

    Je vais donc regarder tout ça pour la version 4.1 actuellement en développement.
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    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 129
    Points : 38 521
    Points
    38 521
    Billets dans le blog
    9
    Par défaut
    Vu la réponse de Paprick, je n'ai visiblement pas compris le contexte

  7. #7
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 011
    Points : 23 692
    Points
    23 692
    Par défaut
    Merci Paprick pour la prise en compte du problème.
    C'est vrai que dans mon modèle, VALIDITE se promène partout. Mais ça symbolise toujours la même information conceptuelle : une période de validité (au même titre qu'une entité fictive CALENDRIER amenant une date peut se promener partout dans un modèle).

    Pour l'instant, je vais corriger manuelle le script SQL généré.
    Une info en avant-première sur l'échéance de sortie de la très attendue v 4.1 ?
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 903
    Points
    30 903
    Billets dans le blog
    16
    Par défaut
    Hello,

    Vous avez dit : bizarre ? Comme c’est bizarre...

    J’arrive un peu la bourre, mais j’ai créé un MCD voisin de celui de CED :




    Dans le MLD, J’ai bien la colonne VALIDITE et pas VALIDITE_1 :




    Bien entendu, si je définissais d’entrée une colonne VALIDITE pour l’association protocoler, alors la colonne VALIDITE de la table COL_PROTOCOLE serait renommée VALIDITE_1, comme l’a écrit très justement escartefigue.

    Bref, quelque chose m’échappe dans cette histoire, bizarre... Qu’ai-je raté ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

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

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Bonjour François,

    Tout cela est effectivement bizarre : en effet, en reprenant exactement le même modèle que toi, j'ai bien le problème du VALIDITE_1 !
    Par contre, comment se fait-il que la rubrique CONDITONS apparaisse dans le MLD alors qu'elle n'existe pas dans le MCD... Es-tu sûr que ton MLD correspond au MCD ?

    Autrement, pour résoudre le problème de CED, il y a une solution simple qui donnera le bon résultat sans modifier le code SQL : il suffit de déclarer une rubrique "normale" VALIDITE dans COLONNE et de supprimer l'association VALIDER. Le problème du VALIDITE_1 disparaitra (ce qui contribue à la bizarrerie !) et le modèle sera tout aussi correct avec un MLD strictement identique ; en effet, l'intérêt d'une classe fictive est de contribuer à la clé primaire de l'association : or, pour cette date, ce n'est pas le cas .
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  10. #10
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 011
    Points : 23 692
    Points
    23 692
    Par défaut
    Oui, c'est effectivement la solution que j'ai utilisée jusque-là. Un attribut VALIDITE dans COLONNE et la suppression de la relation.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  11. #11
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 903
    Points
    30 903
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par Paprick
    Es-tu sûr que ton MLD correspond au MCD ?
    Le MCD que j’ai proposé est antérieur au MLD...

    Voici le dernier MCD :


    Si tu veux, je peux te transmettre mon fichier .loo par mp, tu me dis.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

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

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Si tu veux, je peux te transmettre mon fichier .loo par mp, tu me dis.
    Non, c'est ok : en fait, tu as fait ce que je viens de suggérer à CED ; en supprimant l'association VALIDER, ça fonctionne .
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

Discussions similaires

  1. Problème de clé étrangère avec PostgreSQL
    Par zaboug dans le forum Hibernate
    Réponses: 31
    Dernier message: 15/07/2011, 18h00
  2. Réponses: 3
    Dernier message: 04/10/2010, 11h32
  3. [StAX] Problème underscore dans le nom des noeuds XML avec stax/xstream
    Par mandarindi dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 19/08/2010, 09h51
  4. Problème dans noms d'objets avec espaces
    Par Macadoshis dans le forum Débuter
    Réponses: 1
    Dernier message: 14/05/2010, 17h10
  5. Problème nom de fichier généré avec une variable
    Par matlabeginer dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/04/2008, 12h03

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