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

Merise Discussion :

Problème d'héritage avec powerAmc v15


Sujet :

Merise

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Problème d'héritage avec powerAmc v15
    Bonjour à tous,

    voila j'ai un petit souci avec un héritage

    Une petite présentation du projet (du moins de la partie qui nous intéresse)

    Nom : espace de travail.png
Affichages : 850
Taille : 165,3 Ko

    J'ai trois tableau 'others', 'songs' et 'albums' qui hérite tous les trois de 'products' pour récuperer le prix et la catégorie

    J'ai essayé plusieurs type d'héritage mais rien qui ait donné un bon résultat

    voici ce que j'ai trouvé de plus logiques

    Nom : mcd.png
Affichages : 715
Taille : 162,6 Ko


    Mais le problème c'est que quand j'essaie de faire un mpd j'obtiens ceci (la table de liaison songs et albums):

    Nom : mpd.png
Affichages : 802
Taille : 173,6 Ko

    Je comprends bien qu'il y a un problème avec ma conception mais quel problème ? J'ai essayé différents stratégie mais rien n'y fait.

    Pour ceux qui ont powerAmc vous pouvez voir l'intégralité du mcd ici:
    https://github.com/KhalidSookia/music-band

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour khalid95800,

    Étant donné que vous jouez la carte de l’héritage, une chanson est un produit, un album est un produit, un machin (other) est un produit : le verbe être joue donc un rôle capital, on doit en l’occurrence l’avoir en permanence à l’esprit (par opposition au verbe avoir : un produit n’a pas d’albums, de chansons ou de machins ; il est une de ces choses).

    Vous avez procédé à une généralisation de trois types de choses pour obtenir le type PRODUCT (notez l’emploi du singulier, car PRODUCT est un type, tout comme ALBUM, SONG et OTHER).

    Qui dit généralisation dit héritage par les sous-types ALBUM, SONG et OTHER de l’identifiant du surtype PRODUCT : les attributs id_o, id_so et id_al sont inutiles et perturbateurs, ils doivent donc dégager. Au niveau MLD, l’AGL copiera id_prod dans les tables, sous forme de clé primaire.

    Comme vous avez procédé à une généralisation, vous pouvez jouer le jeu à fond, donc installer les attributs active, created_at, updated_at, etc. et les supprimer des sous-types. A défaut, le surtype PRODUCT perd une bonne partie de son intérêt.

    Le plus urgent :

    (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.

  3. #3
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Khalid95800 et Fsmrel,

    ... j'allais le dire !...

    Je garde donc, simplement, la fin de mon message :

    Citation Envoyé par Khalid95800
    Mais le probleme c'est que quand j'essaie de faire un mpd j'obtiens ceci (la table de liaison songs et albums)
    ==> si :
    1 chanson peut être présente dans plusieurs albums
    et
    1 album contient plusieurs chansons
    ce qui est la réalité, alors, tu n'y coupes pas (à la table de liaison).
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    En complément :

    Pour une génération pertinente au niveau du MLD, dans votre MCD vous double cliquez sur la demi-lune symbolisant l’héritage portée par la patte connectant PRODUCT et ses sous-types. Il y a ouverture de la fenêtre « Propriétés de l’héritage », vous cliquez sur l’onglet « Génération » et vous cochez « N’hériter que des attributs primaires » :

    (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.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Re-bonjour,

    merci pour cette réponse, j'y vois déjà beaucoup plus clair.

    J'ai quand même toujours un petit problème mais qui n'est pas grand chose sauf erreur de ma part.

    Nom : mx362AE.png
Affichages : 683
Taille : 183,7 Ko

    j'ai toujours dans ma table de liaison albums et songs une colonne que je ne comprenais pas l'origine à la base mais maintenant je vois d'ou ça vient.

    C'est du au fait que id_prod à déjà été utilisé et que j'ai besoin de 2 fois id_prod dans ce tableaux.


    Ce qui m’amène maintenant a remettre en cause ma conception. J'avais choisi la carte de l'héritage parce que je ne voyais pas trop comment faire.

    Est-ce que l'héritage est la meilleur solution dans ce cas la? ou même est-elle un bonne solution?

    si non, dans ce cas la quelle serait la solution, parce que la je suis bloqué sur cette partie la depuis hier soir et je ne vois plus trop d'autre option à part l'héritage.

    Merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    En complément :

    Pour une génération pertinente au niveau du MLD, dans votre MCD vous double cliquez sur la demi-lune symbolisant l’héritage portée par la patte connectant PRODUCT et ses sous-types. Il y a ouverture de la fenêtre « Propriétés de l’héritage », vous cliquez sur l’onglet « Génération » et vous cochez « N’hériter que des attributs primaires » :

    j'avais pas encore vu cette partie la...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    modification du mcd tel que recommandée et je crois que c'est plus que satisfaisant


    Je vais m'en tenir à ça je pense.


    Un grand merci pour cette aide qui m'est d'une très grande utilité

  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 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    A la prochaine !
    (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.

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

Discussions similaires

  1. problème d'héritage avec jpa
    Par info20111 dans le forum JPA
    Réponses: 0
    Dernier message: 03/06/2013, 10h59
  2. Problème d'héritage avec Q_OBJECT
    Par L'elfe d'Azur dans le forum Débuter
    Réponses: 1
    Dernier message: 03/04/2013, 16h29
  3. Problème d'héritage avec les génériques.
    Par ZZZzzz2 dans le forum Langage
    Réponses: 11
    Dernier message: 26/01/2012, 09h15
  4. Problème d'héritage avec ArrayList
    Par ghostdu69 dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 12/06/2011, 19h42
  5. Problème d'héritage avec une classe abstraite
    Par Ph.denis dans le forum C++
    Réponses: 7
    Dernier message: 22/03/2008, 10h37

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