Précédent   Forum des professionnels en informatique > Général Développement > Conception > Modélisation > Schéma
Schéma Modélisation Relationnelle (Dépendances Fonctionnelles, Formes Normales, Entité-relation, MCD, MPD ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2011, 10h50   #1
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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 !
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 11h02   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 11h27   #3
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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 ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 13h54   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Citation:
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.

Citation:
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 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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 14h13   #5
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 14h17   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
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 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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 14h32   #7
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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 ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 14h49   #8
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 125
Points : 5 125
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) :
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 !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/09/2011, 14h56   #9
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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) :
http://www.developpez.net/forums/d10...t/#post6067658
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 ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 15h11   #10
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 125
Points : 5 125
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...
__________________
_
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 !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 15h19   #11
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 16h10   #12
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
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 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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 16h31   #13
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 17h26   #14
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 125
Points : 5 125
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 ?
__________________
_
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 !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 16h28   #15
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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é ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 13h49   #16
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 125
Points : 5 125
Par défaut Code SQL

SQL généré par Power AMC (cible SQL Server) :


Code SQL :
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)
) ;
__________________
_
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 !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 15h10   #17
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 125
Points : 5 125
Table COMM_COMM : ajout d’une contrainte pour qu’un commentaire ne puisse pas se commenter lui-même...

Code SQL :
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   
) ;
__________________
_
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 !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 18h56   #18
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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 !
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 13h43   #19
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 125
Points : 5 125
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.
__________________
_
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 !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 20h07   #20
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h30.


 
 
 
 
Partenaires

Hébergement Web