Bonjour tout le monde !
C'est un sujet qui ne dois pas souvent voir le jour =)
Voila je bosse sur mon rapport et montrant une première ébauche de mon MCD j'ai eu une remarque assez destabilisante : "le MCD me paraît trop simpliste".

Donc voila, je vais vous présenter mon MCD et souhaiterais avoir des conseils et des critiques sur ce qui ne vas pas.

upload/37383-Sanstitre.png

Pour expliquer un peu ma "logique" :
-un utilisateur peut appartenir à 0 ou plusieurs groupe, et a un niveau de droit d'accès. Il devient alors membre (les niveaux sont : lecteurs, éditeurs, administrateur)
-un groupe peut avoir un ou plusieurs sous-groupe (les sous-groupes sont des groupes)
exemple : groupe informatique, sous-groupe : html, php, css
-un groupe peut contenir 0 ou plusieurs documents les documents sont rattachés au groupe mère (dans notre exemple c'est informatique)
-un document appartient à un groupe et a été poster par un utilisateur.

Voila je pense que j'ai tout dit ^^ ! C'est à vous maintenant Smiley lol
Hum de retour ...

Quelques remarques :

J'ai l'impression qu'il y a deux objets qui ont fusionnés :

le groupe d'utilisateurs et le groupe de documents

Moi je les séparerai en mettant une liaison entre eux (pour gérer les permissions d'accès )

Ce que tu appelles 'niveau' a un terme bien précis qui s'appelle 'rôle', personnellement je ferai un objet rôle ( qui te permettra plus tard d’affiner ceux-ci ), donc une relation tri-patte pour appartenir.
Bonjour,

J'ai un problème avec le fait qu'un texte ne puisse être écrit que par un et un seul auteut et ne faire partie que d'un seul groupe (bon, le groupe, ça peut passer, l'auteur non).

par contre j'ai l'impression que les cardinalités sont mal placées, mais ça fait longtemps que je n'ai pas fait de MCD.
Laurie-Anne a écrit :
Bonjour,

J'ai un problème avec le fait qu'un texte ne puisse être écrit que par un et un seul auteur et ne faire partie que d'un seul groupe (bon, le groupe, ça peut passer, l'auteur non).

par contre j'ai l'impression que les cardinalités sont mal placées, mais ça fait longtemps que je n'ai pas fait de MCD.


Pour les cardinalités pareil, ça fait longtemps que je n'ai pas pratiqué

Et sinon d'accord avec toi , si on veut faire un site rédactionnel , il faut introduire la notion d'auteur ( le créateur initial) et les correcteurs ( ceux qui modifient après coup) qui sont souvent les rédacteurs ( responsables de la publication)
Du coup, on a deux relations entre utilisateur et document :
* relation "créé" : un utilisateur est auteur de 0 à N documents
un document est créé par un et un seul utilisateur ( auteur )

* relation "modifié" : un utilisateur est correcteur de 0 à N documents
un document est modifié par 0 à N utilisateur ( correcteur )

Pour le document dans un seul groupe , ça ne me choque pas trop, mais ceci dit il m'est déjà arrivé de faire des alias dans les cms pour permettre à un document d'appartenir à deux catégories :
genre un article d'une association décrivant un événement d'agenda, il peut être sympa de pouvoir classer l'article à la fois dans le groupe des articles de l'association mais aussi dans l'agenda ...

Donc pourquoi ne pas permettre dès le début à un document d'appartenir à plusieurs groupes de documents ( ps : on parle souvent de catégories ... ) ?
Sinon il y a le système de tag ( ou la taxonomie cf drupal )
Non non ^^ il faut prendre les documents comme des fichiers (pdf, docx, ...)
c'est un système de upload et download, afin que les personnes d'un service puissent s'échanger des contrats pro par exemple ... ou un groupe de travail s'échangeant leurs travaux .

Donc je ne veux pas séparer les groupes d'utilisateurs des groupes de fichiers. Car mes groupes de fichiers vont en faite réprésentés le groupe d'utilisateurs et contenir les documents, les sous groupes me servent à classer ensuite les documents, pour éviter les grandes listes non classés de documents qui donnerais un truc illisible ^^

Mais je prend en compte ton idée sur le tri-pattes parcontre je ne sais plus les faire il faut que je regarde çà.

Pour les cardinalités normalement je ne me suis pas trompé ... car on met toujours le 1.1 du côté ou on trouvera la clé secondaire ^^ à ne pas confondre avec l'UML qui inverse justement les cardinalités =)

Je reviendrais avec un nouveau MCD fait avec un tri-patte ^^ !
Bonjour à toutes et à tous,

mini-truc a écrit :
Voila je pense que j'ai tout dit ^^ ! C'est à vous maintenant Smiley lol


En vérité, tu n'as rien dit du tout !

Faire "un modèle conceptuel de données" repose sur une définition ou une utilisation. Donc j'aimerai savoir dans quel contexte tu fais cela et aussi ce que tu traites exactement ? Si cela vient d'un exercice d'école, il serait plus simple de nous donner le sujet.

Car nous ne connaissons pas du tout ce que tu as en tête.

J'aimerai connaitre par exemple, la désignation des personnes intervenantes dans ces échanges, le type des documents qui sont utilisés, et pour quel usage (est-ce une gestion simplifiée d'une bibliothèque).

Un exemple : tu parles d'utilisateur. J'aimerai voir une fiche d'état civile contenant le nom, prénom, l'adresse, la date d'inscription (s'il s'agit d'un utilisateur), un numéro de référence de l'utilisateur ... Donc une fiche par personne qui soit unique et que l'on peut identifier facilement.

Ensuite un historique de ce que l'utilisateur aura eu comme modification de sa fiche d'identité.
De même, je ne vois pas l'historique des livres ou documents empruntés par l'utilisateur de tel date à tel date.

De même, je ne vois pas de fiche désignant le document ou livre. C'est à dire, l'auteur, le titre du livre, l'éditeur, le nombre d'exemplaire mise à la disposition, la référence du livre qui rend sont identification unique, sa disponibilité ou pas ...

On ne sait rien sur les groupes. Car qui dit groupe, on devrait connaitre le chef ou responsable du groupe, l'appartenance au groupe, c'est à dire un utilisateur peut-il appartenir à un et un seul groupe ou à plusieurs, de même, il est nécessaire de savoir s'il est encore présent dans le groupe et depuis quand.

Et pour terminer les tables définissant les objets sur lesquels tu vas travailler. Tu pourras définir les liens par la suite qui peuvent ou pourront exister entre eux.

Oui, la personne qui ta dit cela a raison. Ton MCD est un peu trop simpliste. Tu n'as pas pensé à tous les cas de figures.

En terme simple, il serait plus judicieux de nous donner, en bon français, ce que tu veux faire et comment tu veux le faire. Le modèle conceptuel en découlera par la suite. Donc commence par définir les grandes fonctionnalités que tu désires entreprendre.

Pour exemple, c'est comme un jeu. Comment veux-tu gagner à un jeu si tu ne connais pas les règles ?

@+
Modifié par Artemus24 (10 Jun 2011 - 10:47)
Je crois qu'en faite je me suis planté ^^ ! Je crois que j'ai oublié nombreux d'éléments ^^ !
Pour mieux expliquer mon raisonnement je vous publie un cas d'utilisation !

upload/37383-usecases.png
Très bien artemus ;p
Je vais essayer de m'expliquer en bon français :

J'ai fait une application de download, upload. Une application qui sera ajouter à un site intranet.
Donc les utilisateurs je ne me suis pas embêter à faire la fiche car la table existe deja !
Les utilisateurs sont le personnels de la boîte, et d'ailleurs mon application passera plutard par un LDAP mais je ne dois pas m'en occuper, (c'est le chef qui l'a dit ...)
Ensuite les documents ne sont pas modifiable et ne sont pas non plus des publications avec des acteurs etc ..
Non ce sont des fichiers que s'échangent un service par exemple le groupe RH sera composé du personnels RH, il voudront trouvé des répertoires (sous-groupe) contrats pro , contrats stage et dans ces sous dossiers les contrats version pdf par exemple, qu'il pourront télécharger et en faire ce qu'ils en veulent ^^
Je mets uniquement un auteur à mon fichier pour savoir qui l'a publié afin de retrouver s'il y a un problème qui en est la cause etc ...

Euh c'est plus clair ou y'a des zones d'ombres ??
Là je me suis peut être un peu emporté XD !
Euh donc je suis parti d'une pseudo entité pour le niveau et a partir de niveau j'ai gérer les actions possible sur les fichiers (documents)

J'ai volontairement pas mis les cardinalités je les mettrais plus tard car je ne suis pas sur que déjà çà soit vraiment valide =S

upload/37383-mcd.png
Bonjour à nouveau mini-truc,

Oui c'est beaucoup plus clair ! Merci de ton obligeance.

Mais maintenant je me pose la question de l'utilité d'un MCD ?

Car ce dont tu as besoin de formaliser, c'est essentiellement les droits des accès des intervenants et la gestion des documents. Je m'explique.

Un document ne peut pas être détruit par qui que ce soit sinon le document à définitivement disparu et donc, il sera inutilisable pour tous les intervenants. Mais un document ne peut pas être consultable par tout le monde. Les droits d'accès sont la raison même d'autoriser une personne à consulter ou pas le document. Un exemple : un rapport comptable n'est accessible que par le big boss et les comptables, peut-être que ceux qui sont expert-comptable, mais en aucune façon l'employé de base.

Donc l'utilisateur lambda va accéder, via le site web que tu réalises, à l'ensemble des documents. Tu devras pour ce faire, l'identifier et voir s'il a le droit de consulter les titres, d'ouvrir le document, de le copier, ou plus dangereux de le modifier ou de le détruire et cela soit d'une manière unitaire (c'est à dire document par document) ou d'une manière un peu plus général (c'est à dire au niveau du répertoire), ou encore tous les droits (sur le groupe auquel il appartient mais pas les autres groupes. Enfin cela dépend du rôle qu'il joue)

Donc tu devra créer une table des droits avec comme clef, le userid de l'utilisateur pour connaitre les droits et sont appartenance à un groupe. Puis ensuite selon l'opération qu'il veut réaliser (lire, copier, détruire) tu l'autorise ou pas. Pour ce faire, donc pour un utilisateur + groupe, tu devras définir une hiérarchie des droits d’accès. Exemple :

L : lecture
S : suppression
M : modifiable
N : non autorisé
...

De même, pour des raisons statistiques il serait intéressant de connaitre ceux qui viennent consulter ce genre de document. Mais une chose est certaine, le nom des personnes tu t'en moques. Ce sont les identifiants USERID et pourquoi pas aussi la DATE et le TIME car après tout tu es en INTRANET et pour accéder au réseau il faut une identification.

Comme il n'y a pas de monopolisation d'un document (comme dans le cas d'un livre dans une bibliothèque) tu n'as pas de gestion à faire entre le document et celui qui ce l’accapare.

Attention au problème classique de deux intervenants qui désire au même moment accéder en écriture sur le même document. En principe une seule personne à la fois peut modifier un document.

L'auteur du ou des documents, je pense, sera notifié dans la page de garde.

Pour le reste, je ne vois pas bien ce qui manque.

A oui aussi, qu'est-ce que tu entends par un échange de document ?

En principe tu dois gérer aussi les versions du même document. Celui qui est consultable est la dernière version. Si quelqu'un vient se l'accaparer pour le modifier, que faut-il faire ? Soit il n'est plus accessible, soit il faut signaler qu'il est en cours de modification, soit on continue de fournir l'ancienne version.

De même, une liste des rédacteurs du document sera nécessaire en faisant en sorte de connaître l'identité du rédacteur et de quand à quand il a fait sa rédaction. Ce qui implique qu'un rédacteur doit être associé à un document dans sa version V. N'oublie pas que tu dois être capable aussi d'archiver toutes les différentes versions et de pouvoir, si cela est nécessaire de revenir à une version antérieure.

Donc tu as les points suivants à détailler :

--> les droits d'accès
--> la gestion des versions au sein d'un même document.
--> les statistiques sur les documents
--> connaitre le dernier responsable (ou rédacteur) du document.
--> gestion de l'archivage d'un document et cela pour tous les documents.

@+
Re bonjour,

quand tu dis qu'un utilisateur à consulté un document, que veux-tu mettre dans ta table ?

Le jour et l'heure de la consultation !

Et par la suite à quoi cela va te servir ?

Prend une feuille de papier et essaye de définir les grandes fonctionnalités que tu désires avoir ou ceux que l'on te demande.

Si tu as une statistique à faire sur les personnes qui consulte un document, de quoi as-tu besoin ?

Si tu n'as besoin de rien car cette statistique ne te sers à rien alors la table des consultations entre document et utilisateur ne te sert à rien. Donc elle doit disparaitre.

@+
j'espère que c'est pour un intranet multi-sites car sinon c'est un peu dommage de ne pas se servir d'un serveur de fichier qui est conçu exprès pour ce cas-là ...

franchement il y a pas mieux qu'un bon serveur de fichier pour partager des documents ...
et bien non je ne retiens rien dans la consultation Smiley decu
mon cas d'utilisation me sers justement pour définir les actions qu'un utilisateur peut faire, et j'ai reparti l'utilisateur sur les trois niveaux car évidement ils n'ont pas les mêmes droits.

Bon et bien tous çà m'a bien embrouillé Smiley smile mais merci à vous ...
Modifié par mini-truc (10 Jun 2011 - 13:59)