mocodo icon indicating copy to clipboard operation
mocodo copied to clipboard

[suggestion] ajouter l'héritage

Open Taratata37 opened this issue 8 years ago • 15 comments

Bonjour, une des principales avancées de Merise 2 est la possibilité pour plusieurs entités d'hériter des attribut d'une entité mère. Il serait intéressant d'ajouter cette fonctionnalité au logiciel. edit: en l'absence des triangles pour joindre plusieurs héritages d'une même trace, je n'ai pas de suite percuté comme quoi l'héritage y était déjà '^

Taratata37 avatar Jan 28 '16 13:01 Taratata37

Je rouvre l'issue. Mocodo ne gère pas l'héritage pour le moment, mais ça fait partie des développements souhaitables. Il faudrait déjà étendre la syntaxe de façon sympathique, puis gérer le passage au relationnel.

laowantong avatar Jan 28 '16 16:01 laowantong

mais alors pourquoi mettre des flèches s'il n'y a pas d'héritage?

Taratata37 avatar Jan 28 '16 21:01 Taratata37

mais la symétrie n'influe pas sur la génération du MLD, si?

Taratata37 avatar Feb 03 '16 13:02 Taratata37

non

laowantong avatar Feb 03 '16 13:02 laowantong

Salut tout le monde ! Comme cette issue est référencée sur le web, je vous propose d'ajouter l'héritage dans Mocodo, cela avec quelque petit modif toute simple, voir mon fork. ChristopherSonntag/mocodo

c-sonntag avatar Mar 10 '16 02:03 c-sonntag

@ChristopherSonntag Super! bravo pour cet ajout qui tire brillamment parti de la syntaxe existante. Pour référence, je copie ici votre exemple de MCD, ainsi que son texte-source:

AnnéeCulturale : id, annéeDébut, annéeFin
AnnéeCulturaleIlot, 0n AnnéeCulturale, _11 Ilot
Ilot : num, emplacement
IlotContient, 0n Ilot, _11 Parcelle
ParcelleExploitation : code

TypeSemance : code, libellé
DF, 0n TypeSemance, 11 Parcelle
:
Parcelle : num, surface, emplacement, qteObjectif, qteRéalisé
T1, XX> Parcelle, XX ParcelleTiers, XX ParcelleExploitation

TypeApport : code, libellé, nature
CIF, 0n TypeApport, _11 Apport
Apport : num, _date, qteProduitEpanduParHa, qteTotaleEpandu
ApportDeLaParcelle, 0n Parcelle, _11 Apport
ParcelleTiers : nom, prenom

:

:
XT2, XX> Apport, XX ApportMinéral, XX ApportOrganique

:
ApportMinéral : num
:
ApportOrganique : num

Si j'ai bien compris, pour l'instant, vous traitez seulement l'aspect graphique, n'est-ce pas? Vos calculs me donneront en tout cas un bon point de départ lorsque j'attaquerai le problème dans son ensemble, avec les contraintes de spécialisation/généralisation, mais aussi celles sur les associations, et bien sûr le passage au relationnel, qui est loin d'être évident avec ces extensions. D'ici là, votre travail évitera certainement aux utilisateurs les plus avancés de devoir retoucher manuellement le SVG sous Inkscape.

Merci en tout cas pour votre partage.

laowantong avatar Mar 18 '16 07:03 laowantong

Je précise qu'en pratique le passage de l'héritage du MCD au MLD se traduit par la reprise dans l'entité "fille" de la clé de la "mère" comme clé primaire. En revanche, l'attribut n'est pas dupliqué dans le MCD ( d'après Merise Guide pratique, 2ieme édition de Jean-Luc Baptiste).

Les entités filles n'ont donc pas de clé primaire dans le MCD, celles-ci sont générées dans le MLD .

Taratata37 avatar Dec 05 '16 13:12 Taratata37

Bien vu @JulienAMOURIQ Je n’ai fait qu'une rapide modification. Je crois qu'en effet il faudrait revoir d'avantage le code de Mocodo pour ajouter le concept d’héritage. Il y a aussi l’héritage simple (sans X, XT ou T) à ajouter, que je n'ai pas ajouté... Dès que j’aurais du temps, je verrai ce que je peux faire en contrepartie… mais je pense que l’équipe de Mocodo est plus qualifiée ! Python-ment !

c-sonntag avatar Dec 06 '16 09:12 c-sonntag

L'équipe est réduite à une personne, et qui plus est ignorante de Merise 2 ;) J'ai développé Mocodo pour générer des figures propres dans mon cours d'introduction aux BD, où je ne vais pas plus loin que Merise 1.

Merci à Julien pour la référence bibliographique. Je mettrai un mot ici quand je commencerai à travailler sur ces extensions. Votre expertise à tous deux sera certainement la bienvenue.

laowantong avatar Dec 06 '16 09:12 laowantong

Ok, à dans un avenir proche j'espère, dès que vous commencez les extensions ;-).

Il y a peut-être quelques améliorations à faire dans le "texte-source". Dire qu’une table hérite d’une autre pourrait avoir sa propre balise ?

Aussi, mais je pense qu’il existe un autre thread à ce sujet, la convention de nommage des associations est un peu restreinte. Je trouve ça gênant de devoir rajouter un suffixe (1,2, 3, …) pour en ajouter plusieurs de même nom. Il va de soi que lors de la génération des tables cela peut avoir son intérêt surtout pour les association multiple (N, N) car sinon il y aurait des conflits lors de la création de table.

c-sonntag avatar Dec 06 '16 10:12 c-sonntag

A vrai dire, c'est une contrainte de Merise qui interdit d'avoir plusieurs entités/attributs/associations ayant le même nom. Les noms d'entités devant être en majuscules, et les noms d'association en minuscules.

Sans doute faudrait-il prévoir une syntaxe pour les héritages.

Préférez l'usage de "+" pour la partition au lieu d' "XT" (même si cette écriture n'est pas incorrecte - autant utiliser les symboles prévus ^^ ), tjrs d'après mon bouquin p131-132.

Taratata37 avatar Dec 13 '16 13:12 Taratata37

Bonjour, 3 ans ce sont écooulés depuis le dernier le post. Quand est il aujourd'hui de l'héritage avec mocodo ?

jdjebi avatar Aug 06 '19 08:08 jdjebi

Bonjour, L'héritage ne semble pas fonctionner Heritage

est-ce normal ?

theofarault avatar Nov 25 '21 21:11 theofarault

Dans la branche principale, c'est normal, l'héritage n'est pas pris en charge. J'ai fait une PR qui ajoute l'héritage ici : https://github.com/laowantong/mocodo/pull/52. J'espère trouver le temps de finaliser ça début 2022.

laowantong avatar Nov 26 '21 07:11 laowantong

Finalement je suis parti sur d'autres idées pour la syntaxe. La version 3.0 prend en charge l'héritage. Documentation ici.

laowantong avatar Sep 05 '22 13:09 laowantong