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

JFreesoft Discussion :

Héritage en cascade : problème à la génération du MLD


Sujet :

JFreesoft

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut Héritage en cascade : problème à la génération du MLD
    Bonjour,

    Dans mon MCD, j'ai un héritage en cascade :
    Nom : Capture_heritage_en_cascade.png
Affichages : 1411
Taille : 35,1 Ko

    Lorsque je veux générer le MLD, JMerise me répond ceci :
    Lien relatif : l'entite "th_eleve_elv" ne contient pas de clé primaire
    ERREUR : Le MCD est incorrect
    C'est normal puisque la clé primaire de th_eleve_elv sera héritée de th_utilisateur_uti qui l'hérite de th_personne_physique_pph qui l'hérite de te_personne_prs.
    Qu'ai-je oublié dans l'utilisation de JMerise ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

    Désolé mais je ne connais pas JMerise.
    Par contre, si le problème ne se pose qu'avec le sous-type élève et pas le sous-type professeur, il faut comparer les deux, il doit y avoir une différence quelque part.
    Au pire, détruisez le sous-type élève et copiez-collez professeur

    Il m'arrive parfois des trucs semblables avec Power AMC et c'est ce que je fais en désespoir de cause :/

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    J'ai essayé la chose suivante :
    1) Suppression de th_eleve_elv
    => Cela a entraîné la suppression des branches des associations qui partaient de cette entité type.

    2) Recréation de th_eleve_elv
    Sans recréer les branches des associations.

    3) Vérification du MCD par JMerise
    => Erreurs signalées sur les associations a une seule branche mais pas sur l'absence de clé primaire pour th_eleve_elv.

    4) Ajout des branches des associations
    => Même erreur que dans mon premier message lors de la vérification du MCD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    J'ai compris le sens du message d'erreur mais je ne suis pas d'accord avec JMerise !

    Nom : Capture_heritage_en_cascade_et_identification_relative.png
Affichages : 1072
Taille : 82,5 Ko

    J'ai voulu identifier la réponse à un exercice relativement à l'élève (association proposer) et à l'exercice (association répondre).
    Apparemment, JMerise cherche l'identifiant relatif directement dans l'entité type associée mais ne sait pas chercher l'identifiant relatif par héritage.

    Je vais devoir, semble t-il, mettre un identifiant propre à la réponse pour que JMerise soit capable de faire l'association, quitte à triturer le MLD et/ou le SQL ensuite mais du coup je vais perdre la concordance avec la BDD physique, ce que j'avais bien envie d'essayer pour ce projet.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par CinéPhil
    Je vais devoir, semble t-il, mettre un identifiant propre à la réponse pour que JMerise soit capable de faire l'association, quitte à triturer le MLD et/ou le SQL ensuite
    J'ai donc procédé ainsi mais j'ai aussi constaté d'autres soucis, à la lecture du MLD et du SQL généré que j'ai dû reprendre à la main :

    Voici donc le genre d'héritage en cascade que j'ai dans mon MCD :

    eleve -(1.1)----être----0,1- utilisateur -(1.1)----être----0,1- personne_physique -(1.1)----être----0,1- personne

    Lors de la génération du MLD et du SQL, JMerise donne en référence des clés héritées de toutes les tables filles la clé primaire de la table des personnes alors que, par exemple, la table des élèves devrait faire référence à utilisateur. En effet, toutes les personnes ne sont pas forcément des utilisateurs (il y a aussi des personnes morales, comme le montre mon MCD plus haut).

    J'ai aussi constaté un léger problème qui n'a pas trop de rapport avec le précédent :
    L'ordre de génération des tables et des clés étrangères peut potentiellement entraîner des erreurs à la génération de la BDD car ce ne sont pas forcément les tables sans clé étrangère qui sont générées en premier.

    En dehors de ces soucis, je reste séduit par ce jeune outil de conception de BDD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Problème de génération de MLD via script SQL
    Par Caliimero dans le forum PowerAMC
    Réponses: 1
    Dernier message: 22/09/2012, 22h05
  2. Réponses: 20
    Dernier message: 14/06/2008, 15h18
  3. [Tableaux] problème de génération d'un agenda
    Par Nowhere dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2006, 07h30
  4. Delete cascade --> problème de temps de traitement
    Par celine31 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 11/01/2006, 13h03
  5. Réponses: 2
    Dernier message: 25/09/2005, 22h30

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