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

Schéma Discussion :

Gestion de la recursivité sur les commentaires


Sujet :

Schéma

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut Gestion de la recursivité sur les commentaires
    Bonjour,

    Pouvez-vous m'aider sur un morceau de ma modélisation ?

    J'ai une table commentaire qui permet de commenter des articles.
    Cette table commentaire est attachée à la table utilisateur.

    J'aimerais pouvoir gérer le fait qu'un commentaire puisse être commenté par n'importe quel utilisateur. De nouveau le commentaire commenté peut être commenté...

    Comment feriez-vous cela, je travail avec analyse SI.

    Par avance merci pour votre aide !

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Tu peux généraliser "article" et "commentaire" en une entité mère appelée par exemple "contribution".

    article -(1,1)----etre----0,1- contribution -1,1----rediger----0,n- personne
    commentaire -(1,1)----etre----0,1---|

    Ensuite, il suffit d'associer contribution à elle-même :

    contribution -0,1----repondre
    |------------------0,n---------|

    Tables :
    personne (prs_id, prs_nom, prs_prenom...)
    contribution (cnt_id, cnt_id_auteur, cnt_texte, cnt_date, [colonnes communes à toutes les contributions])
    article (art_id_contribution, art_titre, [colonnes spécifiques aux articles])
    commentaire (cmt_id_contribution, [colonnes spécifiques aux commentaires])
    reponse (rep_id_reponse, rep_id_contribution_repondue)
    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 !

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonjour et merci pour ces explications mais j'ai du mal à transformer celles-ci dans mon MCD.

    j'ai notamment des difficultés à comprendre l’intérêt de créer une table contribution sachant que l'on garde à la fois la table commentaire et article.

    Est-ce qu'analyse SI peut modéliser ce système ?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    j'ai notamment des difficultés à comprendre l’intérêt de créer une table contribution sachant que l'on garde à la fois la table commentaire et article.
    C'est la modélisation d'un héritage de données.

    Est-ce qu'analyse SI peut modéliser ce système ?
    Je ne sais pas si ce logiciel a évolué depuis que je l'avais essayé mais à l'époque il refusait de créer une entité type sans identifiant or mes entités types article et commentaires sont identifiées relativement à contribution donc elles n'ont pas d'identifiant propre.

    L'héritage est par contre faisable avec Open Modelsphere mais avec une bidouille expliquée quelque part par fsmrel. Fait une recherche dans le forum avec fsmrel et Open Modelsphere.

    Bon courage.
    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
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    C'est la modélisation d'un héritage de données.


    Je ne sais pas si ce logiciel a évolué depuis que je l'avais essayé mais à l'époque il refusait de créer une entité type sans identifiant or mes entités types article et commentaires sont identifiées relativement à contribution donc elles n'ont pas d'identifiant propre.

    L'héritage est par contre faisable avec Open Modelsphere mais avec une bidouille expliquée quelque part par fsmrel. Fait une recherche dans le forum avec fsmrel et Open Modelsphere.

    Bon courage.
    Je crois que je vais devoir m'acheter un bouquin la dessus car je suis à la ramasse

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    Je crois que je vais devoir m'acheter un bouquin la dessus car je suis à la ramasse
    Sur quoi ?
    L'héritage ? L'article de SQLPro n'est-il pas suffisant ?
    La modélisation en général ? Il y a en ligne le livre de Michel Diviné.
    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 !

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Sur quoi ?
    L'héritage ? L'article de SQLPro n'est-il pas suffisant ?
    La modélisation en général ? Il y a en ligne le livre de Michel Diviné.
    La modélisation par héritage me semble un concept plutôt complexe et même avec le tuto, c'est pas gagné ! J'ai toute une base à réorganiser et déjà sur les commentaires, je suis planté !

    Côté logiciel, je vais regarder dbdesigner, est-il plus complet qu'un Analyse SI ?

  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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Alternative (gratuite) à AnalyseSI
    Bonjour,


    Citation Envoyé par heretik25 Voir le message
    je travaille avec analyse SI
    Je ne sais pas si AnalyseSI a fait des progrès, mais en son temps j’avais relevé quelques anomalies sévères.
    Voyez la discussion ouverte par qu1dam.


    Concernant Open ModelSphere, voyez par exemple :
    tavarlindar (Quelle technique / logiciel pour modéliser un MCD intelligent en 2010 ?)
    http://www.developpez.net/forums/d96...a/#post5436291

    dxerty (Type association communs)
    http://www.developpez.net/forums/d89...s/#post5091059

    Locus51 (gestion des adhérents)
    http://www.developpez.net/forums/d90...s/#post5112835

    Menas (MCD_Spécialisation/Heritage/Sous-types Open ModelSphere)
    http://www.developpez.net/forums/d89...n-modelsphere/

    ricounet_paris (inscription (souple) de clients)
    http://www.developpez.net/forums/d95...s/#post5356557

    guipe ( Gestion d'une pharmacie)
    http://www.developpez.net/forums/d90...ion-pharmacie/

    A l’instar de Jogodepau, vous pouvez aussi sauter par-dessus le MCD passer directement au MLD avec MySQL Workbench (gratuit) :
    (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 averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonjour,



    Je ne sais pas si AnalyseSI a fait des progrès, mais en son temps j’avais relevé quelques anomalies sévères.
    Voyez la discussion ouverte par qu1dam.


    Concernant Open ModelSphere, voyez par exemple :
    tavarlindar (Quelle technique / logiciel pour modéliser un MCD intelligent en 2010 ?)
    http://www.developpez.net/forums/d96...a/#post5436291

    dxerty (Type association communs)
    http://www.developpez.net/forums/d89...s/#post5091059

    Locus51 (gestion des adhérents)
    http://www.developpez.net/forums/d90...s/#post5112835

    Menas (MCD_Spécialisation/Heritage/Sous-types Open ModelSphere)
    http://www.developpez.net/forums/d89...n-modelsphere/

    ricounet_paris (inscription (souple) de clients)
    http://www.developpez.net/forums/d95...s/#post5356557

    guipe ( Gestion d'une pharmacie)
    http://www.developpez.net/forums/d90...ion-pharmacie/

    A l’instar de Jogodepau, vous pouvez aussi sauter par-dessus le MCD passer directement au MLD avec MySQL Workbench (gratuit) :
    Effectivement, sur des choses complexes comme l'héritage, on semble être au delà des capacités d'analyse SI. Maintenant la question est : est on obligé dans mon cas de passer par ce type de modélisation ?

  10. #10
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    La modélisation par héritage me semble un concept plutôt complexe et même avec le tuto, c'est pas gagné !
    Avant de baisser les bras, voyez la discussion avec Heledir.

    Voyez aussi la discussion avec vivicente.

    Citation Envoyé par heretik25 Voir le message
    Effectivement, sur des choses complexes comme l'héritage, on semble être au delà des capacités d'analyse SI. Maintenant la question est : est on obligé dans mon cas de passer par ce type de modélisation ?
    Que voulez-vous dire par « type de modélisation » ? Expliquez au moyen d'un exemple.

    En tout cas, comme dit Grégoire Lacroix, la meilleure façon de ne pas baisser les bras, c'est de lever le coude...
    (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.

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Avant de baisser les bras, voyez la discussion avec Heledir.

    Voyez aussi la discussion avec vivicente.



    Que voulez-vous dire par « type de modélisation » ? Expliquez au moyen d'un exemple.

    En tout cas, comme dit Grégoire Lacroix, la meilleure façon de ne pas baisser les bras, c'est de lever le coude...
    CinePhil préconise la modélisation par héritage. N'est-il pas possible d'arriver à une méthode de stockage correcte sans passer par ce procédé ?

    Le cas concret était de pouvoir de stocker des commentaires sur un article.
    Un commentaire est posté par un utilisateur. Un utilisateur peut citer un commentaire (système de quote).

    Le système que j'aimerai modéliser se rapproche donc du système de commentaire d'un forum.

  12. #12
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    Un utilisateur peut citer un commentaire (système de quote).

    Le système que j'aimerai modéliser se rapproche donc du système de commentaire d'un forum.
    Ne confondrais-tu pas la citation et le référencement ?

    Dans les forums de developpez.com, on peut répondre au premier message d'une discussion ou à un autre message en utilisant le bouton "Citer", lequel, par la magie développée par le programmeur, copie l'intégralité du message cité dans des balises QUOTE en ouvrant l'éditeur de texte pour poster la réponse. Ensuite, tu fais ce que tu veux avec comme par exemple le découper en plusieurs morceaux.
    Par contre, tous les messages d'une discussion sont référencés à cette discussion et sont simplement affichés dans l'ordre de la date d'enregistrement.

    Il existe par contre d'autres système où on peut effectivement voir les réponses à des réponses selon une structure arborescente :
    Premier message
    |-Premier commentaire
    |-Deuxième commentaire
    |--réponse 1 au deuxième commentaire
    |--réponse 1 au deuxième commentaire
    |-Troisième commentaire

    Dans le modèle que je t'ai proposé, la table associative "reponse" devrait te permettre de présenter les données de cette façon, avec quand même quelques lignes de code dans le programme utilisateur.

    Sinon, il y a aussi une solution que je ne te propose pas car elle est encore plus complexe que l'héritage : La gestion d'arbre par représentation intervallaire.
    Rien que le titre fait peur hein ?

    Franchement, l'héritage n'est vraiment pas si compliqué que ça et c'est proche du concept homonyme dans la programmation objet.
    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 !

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Ne confondrais-tu pas la citation et le référencement ?

    Dans les forums de developpez.com, on peut répondre au premier message d'une discussion ou à un autre message en utilisant le bouton "Citer", lequel, par la magie développée par le programmeur, copie l'intégralité du message cité dans des balises QUOTE en ouvrant l'éditeur de texte pour poster la réponse. Ensuite, tu fais ce que tu veux avec comme par exemple le découper en plusieurs morceaux.
    Par contre, tous les messages d'une discussion sont référencés à cette discussion et sont simplement affichés dans l'ordre de la date d'enregistrement.

    Il existe par contre d'autres système où on peut effectivement voir les réponses à des réponses selon une structure arborescente :
    Premier message
    |-Premier commentaire
    |-Deuxième commentaire
    |--réponse 1 au deuxième commentaire
    |--réponse 1 au deuxième commentaire
    |-Troisième commentaire

    Dans le modèle que je t'ai proposé, la table associative "reponse" devrait te permettre de présenter les données de cette façon, avec quand même quelques lignes de code dans le programme utilisateur.

    Sinon, il y a aussi une solution que je ne te propose pas car elle est encore plus complexe que l'héritage : La gestion d'arbre par représentation intervallaire.
    Rien que le titre fait peur hein ?

    Franchement, l'héritage n'est vraiment pas si compliqué que ça et c'est proche du concept homonyme dans la programmation objet.
    Dans mon système, l'utilisateur n'a en effet pas le droit de modifier le texte d'origine qu'il cite. En cliquant sur le bouton citer, il arrive dans son textarea et ajoute sa réponse. Par contre, côté utilisateur, on voit bien le message qu'il à cité et son message est en dessous.

    C'est ce que j'ai aujourd'hui sur mon site mais cela fonctionne sans une réelle modélisation

    Ex : http://www.partir-en-vtt.com/php/com...nt_comment=104


    P.S : T'as bien fait de ne pas me proposer le truc intervallaire


    Ceci n'est qu'une partie de la modélisation que j'aimerai boucler afin de pouvoir sereinement avancer dans mes développements.

    Voici les règles de gestion que j'aimerai appliquer pour la modélisation :


    Un article est écrit par un utilisateur ayants les droits suffisants. Il contient les données communes des différents articles (titre, timestamp, description, mots clés, validation).

    Un article peut être soit:

    • une balade
    • un test de matériel
    • un périple
    • une news
    • un partenaire
    • un lien amis
    • la réponse à une question générale
    • une question FAQ
    • entretien du vélo
    • une présentation


    On peut imaginer que d'autres types d'articles s'ajoutent au fur et à mesure des évolutions. Chaque article doit sera validé par un administrateur sauf lorsque c'est lui même qui écrit l'article.

    Précisons les besoins des différents articles:

    • Une balade peut être soit à pied, à vélo...la balade est associée à un département et parfois à un fichier GPX (trace GPS)
    • Un test de matériel est inféodé à une catégorie (vêtements, bivouac,orientation,vélo,randonnée...). La catégorie possède une position afin de pouvoir gérer l'ordre d'affichage.
    • Un périple peut-être à pied, à vélo...et son contenu est découpé en plusieurs pages car très long. Le périple est associé à un secteur géographique (France, Europe, Monde) et parfois à un fichier GPX (trace GPS).
    • Entretien est un article inféodé à une catégorie (transmission,roues,...) et est liée à une durée (10 mn, 20mn,30mn et plus) et une difficulté (facile moyen, difficile). La catégorie possède une position afin de pouvoir gérer l'ordre d'affichage.
    • «FAQ» est inféodé à une catégorie. La catégorie possède une position afin de pouvoir gérer l'ordre d'affichage.
    • «News», «partenaire», «liens amis, «question», « présentation» sont des articles «simples» et n'ont pas de gestion particulière.


    Autres :

    Un article peut être commenté par les utilisateurs. Un commentaire peut se faire à son tour commenter (système similaire au forum).

    Un livre d'or permet aux utilisateurs de poster leur ressentis sur le site et ce sans modération.

  14. #14
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Je n'ai pas lu vos échanges successifs, car tous les deux, heretik35 et CinePhil, vous êtes de véritables mitraillettes...

    Quoi qu'il en soit :

    Citation Envoyé par heretik25 Voir le message
    CinePhil préconise la modélisation par héritage. N'est-il pas possible d'arriver à une méthode de stockage correcte sans passer par ce procédé ?
    Ça doit pouvoir se faire. Essayons par exemple ainsi vite fait sur le gaz (AGL Power AMC) :


    Diagramme conceptuel



    L’entité-type COM_COM définit les liens entre un commentaire « commentant » un autre commentaire (commenté). Un commentaire commente un seul commentaire et un commentaire peut être commenté par plusieurs commentaires.

    L’entité-type COM_ART permet d’établir un lien entre un commentaire et l’article qu’il commente. Les commentaires sur les commentaires ne sont pas concernés par cette entité-type.


    Diagramme logique


    Vos commentaires sur mon commentaire ?
    (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.

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonjour,

    Merci pour cette proposition ! J'arrive à comprendre la méthode utilisée mais je n'aurais jamais réussi à proposer ce type de modélisation.

    Est-ce que l'on pourrait avoir le sql généré ?

  16. #16
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Code SQL
    SQL généré par Power AMC (cible SQL Server) :


    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    CREATE TABLE ARTICLE (
       ArtId                INT                  NOT NULL,
       ArtNom               VARCHAR(48)          NOT NULL,
       CONSTRAINT ARTICLE_PK PRIMARY KEY  (ArtId)
    ) ;
     
    CREATE TABLE UTILISATEUR (
       UtilId               INT                  NOT NULL,
       UtilNom              VARCHAR(48)          NOT NULL,
       CONSTRAINT UTILISATEUR_PK PRIMARY KEY  (UtilId)
    ) ;
     
    CREATE TABLE COMMENTAIRE (
       CommentId            INT                  NOT NULL,
       UtilId               INT                  NOT NULL,
       CommentDate          DATETIME             NOT NULL,
       CONSTRAINT COMMENTAIRE_PK PRIMARY KEY  (CommentId),
       CONSTRAINT COMMENTAIRE_UTILISATEUR_FK FOREIGN KEY (UtilId)
          REFERENCES UTILISATEUR (UtilId)
    ) ;
     
    CREATE TABLE COM_ART (
       CommentId            INT                  NOT NULL,
       ArtId                INT                  NOT NULL,
       CONSTRAINT COM_ART_PK PRIMARY KEY  (CommentId),
       CONSTRAINT COM_ART_ARTICLE_FK FOREIGN KEY (ArtId)
          REFERENCES ARTICLE (ArtId),
       CONSTRAINT COM_ART_COMMENTAIRE_FK FOREIGN KEY (CommentId)
          REFERENCES COMMENTAIRE (CommentId)
    ) ;
     
    CREATE TABLE COMM_COMM (
       CommentantId         INT                  NOT NULL, -- Commentaire commentant un commentaire
       CommenteId           INT                  NOT NULL, -- Commentaire commenté par un commentaire
       CONSTRAINT COMM_COMM_PK PRIMARY KEY  (CommentantId),
       CONSTRAINT COMM_COMM_COMMENTAIRE_FK1 FOREIGN KEY (CommenteId)
          REFERENCES COMMENTAIRE (CommentId),
       CONSTRAINT COMM_COMM_COMMENTAIRE_FK2 FOREIGN KEY (CommentantId)
          REFERENCES COMMENTAIRE (CommentId)
    ) ;
    (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.

  17. #17
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Table COMM_COMM : ajout d’une contrainte pour qu’un commentaire ne puisse pas se commenter lui-même...

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE COMM_COMM (
       CommentantId   INT       NOT NULL, -- Commentaire commentant un commentaire
       CommenteId     INT       NOT NULL, -- Commentaire commenté par un commentaire
       CONSTRAINT COMM_COMM_PK PRIMARY KEY  (CommentantId),
       CONSTRAINT COMM_COMM_COMMENTAIRE_FK1 FOREIGN KEY (CommenteId)
          REFERENCES COMMENTAIRE (CommentId),
       CONSTRAINT COMM_COMM_COMMENTAIRE_FK2 FOREIGN KEY (CommentantId)
          REFERENCES COMMENTAIRE (CommentId),
       CONSTRAINT COMM_COMM_CHK1 CHECK (CommentantId <> CommenteId) -- Un commentaire ne peut pas s'auto-commenter   
    ) ;
    (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.

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonjour et merci pour ton aide,

    J'ai essayé de faire ce que tu me propose sous analyse SI. En pj, le mcd et le mpd.

    Est-ce que cela te semble bon ? (pour la partie du commentaire) et + si affinité !

    Merci !

  19. #19
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour,


    Citation Envoyé par heretik25 Voir le message
    J'ai essayé de faire ce que tu me propose sous analyse SI.
    Est-ce que cela te semble bon ?
    Rapprochons nos MCD :


    AnalyseSI ne propose donc toujours pas l’identification relative (ou la composition) ? A défaut, vous êtes obligé d’identifier COM_ART et COMM_COMM, ce que vous avez donc fait, en échange de quoi vous devrez modifier le MLD généré pour retrouver un MLD conforme à ce qu’on attend.

    Selon votre association-type « commenté par », un commentaire peut être commenté au plus par un autre commentaire. De même, selon votre association-type « commentant », un commentaire peut commenter plusieurs commentaires. Quelque part il y aurait comme une inversion...

    N.B. Vous ne cherchez pas à prendre en compte la date du commentaire ?


    Rapprochons les MLD :



    Votre table commentaire doit être débarrassée des attributs id_com_com et id_com_art.

    L’attribut id_com_art de la table comm_art doit entrer dans la composition de la clé étrangère {id_com_art} référençant la clé primaire {id_commentaire} de la table commentaire (il faut pallier l’absence du lien symbolisé par une flèche rouge).

    L’attribut id_com_com de la table comm_comm doit entrer dans la composition de la clé étrangère {id_com_com} référençant la clé primaire {id_commentaire} de la table commentaire (on va supposer que la présence de la flèche rouge symbolise ce lien). La clé étrangère {id_com_com} représente le rôle « Commentant ».

    Un des deux attributs id_commentaire de la table comm_comm doit disparaître puisqu’il y a doublons.

    L’attribut id_commentaire (restant) de la table comm_comm doit entrer dans la composition de l’autre clé étrangère {id_commentaire} référençant la clé primaire {id_commentaire} de la table commentaire (noter l’absence du 2e lien symbolisé par une autre flèche rouge). La clé étrangère {id_commentaire} représente le rôle « Commenté ».

    Pouvez-vous présenter le code SQL produit par AnalyseSI, que l’on puisse comparer avec celui que je vous ai proposé hier ?

    Pour le reste du MCD, on regardera quand on sera d'équerre pour la partie correspondant aux commentaires.
    (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.

  20. #20
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonsoir,

    Apparemment Analyse SI est trop jeune pour répondre à mes attentes J'ai téléchargé la version d'essai de power amc et j'essaye de m'y familiariser.

    J'ai essayé de créer le même mcd que le votre mais je n'ai pas le même MPD.

    J'ai mis mon fichier .mcd en PJ si vous voulez jeter un coup d'oeil.

    Merci de prendre de votre temps pour m'aider.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/09/2008, 16h37
  2. Réponses: 2
    Dernier message: 02/09/2008, 13h16
  3. petite question sur les commentaires en C
    Par jocelyn54 dans le forum Débuter
    Réponses: 2
    Dernier message: 25/01/2008, 02h08
  4. Probleme sur les commentaire XML
    Par IGFP dans le forum EDI/Outils
    Réponses: 6
    Dernier message: 27/02/2007, 08h41
  5. xpath-->test sur les commentaires
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/07/2005, 12h14

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