Donc le domaine que vous modélisez est celui de la société qui offre des services.
Apparemment, le service réception est le seul réceptionnaire. Inutile donc de préciser à chaque mouvement qui reçoit le mouvement puisque ce sera toujours le même service. En fait, votre phrase tient du fonctionnel qui se traite par un modèle conceptuel des traitements (MCT). Idem pour le service technique qui sera toujours celui qui traite.
Par contre, ce qu'il faut mieux modéliser dans le MCD, c'est le type des mouvements : Au lieu de répéter dans la table des mouvements le nom du type, avec un risque d'erreurs de saisie (même type de mouvement écrit sous plusieurs orthographes), il faut externaliser le type de mouvement dans une entité type et associer le mouvement à son type.
Idem pour les motifs
Donc votre MCD se résume à ça :
Societe -0,n----envoyer----1,1-
Mouvement -1,1----typer----0,n-
Type_mouvement
Motif -0,n----motiver--------1,1---------|
Ce qui donnera les tables suivantes, en tenant compte du reste de votre description :
tr_type_mouvement_tmv (
tmv_id, tmv_code, tmv_libelle...)
tr_motif_mtf (
mtf_id, mtf_code, mtf_libelle...)
te_societe_soc (
soc_id, soc, nom...)
te_mouvement_mvt (
mvt_id,
mvt_id_societe,
mvt_id_type_mouvement,
mvt_id_motif, mvt_montant, mvt_date_reception, mvt_date_traitement...)
Remarques :
1) On écrit les noms des entités types et des tables au singulier parce qu'elles représentent les caractéristiques d'une unité conceptualisée et ces noms sont issus des
règles de gestion qui examinent chaque association relativement à une entité type. Par exemple, la règle de gestion de l'association "envoyer" est la suivante :
Une société peut envoyer plusieurs mouvements et
un mouvement est envoyé par une seule société.
Vous voyez qu'on examine individuellement une société type et un mouvement type.
2) Dans mes dénominations de tables, j'utilise un standard personnel inspiré de
celui de SQLPro.
Les tables commençant par "
tr" sont des
tables de
référence (référence des types de mouvement et référence des motifs) et les tables commençant par "
te" sont les
tables issues des
entités types du MCD. S'il y avait une
table de
jointure issue d'une
association, son nom aurait commencé par "
tj"
Les noms de tables se terminent par un trigramme mnémotechnique utilisé ensuite dans les noms des colonnes, ce qui permet de savoir facilement de quelle table vient une colonne utilisée dans une requête.
EDIT : Ce que vous n'avez pas modélisé, par contre, ce sont les services offerts par la société. J'imagine qu'ils entrent pourtant dans les caractéristiques des mouvements, non ?
Partager