|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
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 ! |
|
|
00
|
|
|
#2 |
![]() ![]() |
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 de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
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 ? |
|
|
00
|
|
|
#4 | ||
![]() ![]() |
Citation:
Citation:
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 de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#5 | |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 | |
![]() ![]() |
Citation:
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 de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#7 | |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Citation:
Côté logiciel, je vais regarder dbdesigner, est-il plus complet qu'un Analyse SI ? |
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
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 ?)A l’instar de Jogodepau, vous pouvez aussi sauter par-dessus le MCD passer directement au MLD avec MySQL Workbench (gratuit) : http://www.developpez.net/forums/d10...t/#post6067658
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
10
|
|
|
#9 | |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Citation:
Voyez aussi la discussion avec vivicente. Citation:
En tout cas, comme dit Grégoire Lacroix, la meilleure façon de ne pas baisser les bras, c'est de lever le coude...
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
||
|
|
00
|
|
|
#11 | |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Citation:
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. |
|
|
|
00
|
|
|
#12 | |
![]() ![]() |
Citation:
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 de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#13 | |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
Citation:
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:
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:
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. |
|
|
|
00
|
|
|
#14 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
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:
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 ?
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
|
00
|
|
|
#15 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
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é ? |
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
SQL généré par Power AMC (cible SQL Server) :
Code SQL :
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
||
|
|
00
|
|
|
#17 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Table COMM_COMM : ajout d’une contrainte pour qu’un commentaire ne puisse pas se commenter lui-même...
Code SQL :
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
||
|
|
00
|
|
|
#18 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
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 ! |
|
|
00
|
|
|
#19 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Bonjour,
Citation:
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.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
|
00
|
|
|
#20 |
|
Membre actif
![]() Inscription : avril 2011 Messages : 426 ![]() |
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. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com