# Gnral Dveloppement > ALM > Modlisation > Schma >  Modle entit association - gestion de lettres de relance

## HeroStar

Bonjour, j'ai un modle entit-association a laborer sur une socit de transports urbains qui gre des contrleurs, des infractions des usagers etc. La consigne se trouve dans le pdf ci-joint.

J'ai fait une premire bauche du modle mais j'ai du mal  le finaliser puisque je ne vois pas bien comment grer le "conditionnel" et "l'incrment"; en l'occurrence comment grer diffrents types de lettres de relances (1, 2, 3, 4 lettre)  envoyer SI le fraudeur n'a pas pay l'amende directement, je cite: "II existe diffrents types de lettre de relance selon que le contrevenant a moins de 11 ans (aucune poursuite n'est engage, seule une lettre d'avertissement est envoye aux parents), selon qu'il soit mineur (de plus de 11 ans) ou majeur et selon la relance (1, 2, 3, 4)."

Voici mon modle pour l'instant:


Si des volontaires sont prts  m'aiguiller dans mon travail, ce serait plus qu'apprciable!

Herostar

----------


## Paprick

Bonsoir,

Avant d'aller plus loin, je suis surpris par votre MCD : des associations qui n'associent rien (Type, Paiement, ...), des traits qui se promnent au milieu du modle...
Quel logiciel avez-vous utilis pour faire votre MCD ?

----------


## HeroStar

Oui ce n'est qu'une bauche faite sur PowerPoint; dsol, je dbute, je n'ai pas encore tous les outils adapts.

----------


## escartefigue

Il existe des logiciels de modlisation gratuits, vous devriez en trouver facilement sur la toile, Paprick pourra peut-tre vous y aider  :;): 

Il y a par ailleurs d'autres bizarreries dans votre MCD comme l'hritage de voyageur vers les mineurs plus ou moins gs et les majeurs.
Il va falloir expliquer un peu tout a  :;):

----------


## Paprick

> Il existe des logiciels de modlisation gratuits, vous devriez en trouver facilement sur la toile, Paprick pourra peut-tre vous y aider


Je ne me permettrais pas Capitaine, mais je n'en pense pas moins !  ::mouarf::

----------


## fsmrel

Fi de la modestie du papa de Looping !

Autrement dit, HeroStar, il est grand temps de vous familiariser avec lincomparable Looping, gracieusement propos par le professeur Patrick Bergougnoux (merci Paprick !  :+1: )

----------


## HeroStar

Oui oui je connais looping mais comme je termine mon cours sur les modles E/A, je n'ai pas le temps d'apprendre  l'utiliser maintenant. 
Sinon, avez-vous des ides pour m'aider dans mon exercice ?

----------


## escartefigue

Bonjour HeroStar

L'apprentissage de Looping n'a rien de rbarbatif, on ne se pose  peu prs aucune question, c'est trs intuitif  :;): 

Et au pire, si un point particulier pose question, plusieurs contributeurs de ce forum sauront vous aider  ::P: 


*EDIT* : sans compter le temps gagn par rapport  une modlisation faite sous power point  ::weird::  et la fiabilisation du modle grce  l'utilisation d'un logiciel ad hoc

----------


## HeroStar

Voici une version non finie de mon modle sur Looping. (sur quoi l'avez vous cod d'ailleurs ?)

----------


## escartefigue

Bonjour,

Pourquoi modliser des sous-types de voyageur selon la classe d'ge ?
La date de naissance de l'entit-type voyageur suffit.

Les attributs de l'association "concerne" ncessitent des explications.
Je crains que typeid et numid soient des identifiants, les identifiants n'ont pas leur place dans les associations
De plus, comme c'est une asso 1,1, les autres attributs peuvent tre positionns dans l'infraction (la date de dlivrance de l'infraction, si c'est bien ce que reprsente DATEDELIV est bien un attribut de l'infraction)


Si NBUSINF est le nombre de personnes concernes par l'infraction alors pourquoi une cardinalit 1,1 vers "concerne" ?
Le motif de l'infraction doit tre vacu dans une entit-type de typologie d'infraction, avec un identifiant, un code = un libell et autres attributs si besoin.

L'hritage exclusif de l'infraction vers "payee" et "procs verbal" me semble douteux : le fait d'tablir un PV interdit-il le paiement  ::weird:: 


De mme, l'hritage de "contrle" vers "simple" ou infraction pourrait sans doute tre remplac par une association facultative de "contrle" vers "infraction"
CONTROLE 0,n --- verifier --- 1,1 INFRACTION

----------


## HeroStar

> Pourquoi modliser des sous-types de voyageur selon la classe d'ge ?
> La date de naissance de l'entit-type voyageur suffit.


Car il va falloir grer des lettres de relance selon que l'individu est ag de -11 ans, entre 11 et 18 ans ou +18 ans. Je pensais donc relier diffrentes lettres de relance selon la catgorie d'age.




> Les attributs de l'association "concerne" ncessitent des explications.
> Je crains que typeid et numid soient des identifiants, les identifiants n'ont pas leur place dans les associations
> De plus, comme c'est une asso 1,1, les autres attributs peuvent tre positionns dans l'infraction (la date de dlivrance de l'infraction, si c'est bien ce que reprsente DATEDELIV est bien un attribut de l'infraction)


Typeid et numid reprsentent le type et le numro de la piece d'identit que le fraudeur montre au controleur. Je l'ai mis dans une association car un mme voyageur peut frauder plusieurs fois au cours de sa vie et donc montrer diffrents types de pices d'identit.




> Si NBUSINF est le nombre de personnes concernes par l'infraction alors pourquoi une cardinalit 1,1 vers "concerne" ?
> Le motif de l'infraction doit tre vacu dans une entit-type de typologie d'infraction, avec un identifiant, un code = un libell et autres attributs si besoin.


NBUSIF est simplement le numro du bus dans lequel a eu lieu le controle/l'infraction.





> L'hritage exclusif de l'infraction vers "payee" et "procs verbal" me semble douteux : le fait d'tablir un PV interdit-il le paiement


En fait, un individu peut payer directement lors du controle (ou dans les 48H) ou alors ne pas payer dans les 48h et alors un proces verbal est ouvert. Je cite "On tiendra compte du fait qu'une infraction ne donne pas toujours lieu  un procs-verbal (distinguer les deux notions)"




> De mme, l'hritage de "contrle" vers "simple" ou infraction pourrait sans doute tre remplac par une association facultative de "contrle" vers "infraction"
> CONTROLE 0,n --- verifier --- 1,1 INFRACTION


Bonne ide!


J'espre que j'ai t plus clair.

----------


## escartefigue

Re  :;): 





> Car il va falloir grer des lettres de relance selon que l'individu est ag de -11 ans, entre 11 et 18 ans ou +18 ans. Je pensais donc relier diffrentes lettres de relance selon la catgorie d'age.


Oui, mais d'une part la date de naissance permet de connatre l'ge de la personne au moment de l'infraction, d'autre part, l'ge n'a de sens qu' un instant "t" puisqu'il change tous les jours. Par ailleurs, s'il n'y a ni attribut spcifique  telle classe d'ge ni association spcifiques, l'hritage n'a pas d'intrt.
Donc l'attribut "date de naissance" compar avec la date du jour vous suffira pour rpondre au besoin 






> Typeid et numid reprsentent le type et le numro de la piece d'identit que le fraudeur montre au controleur. Je l'ai mis dans une association car un mme voyageur peut frauder plusieurs fois au cours de sa vie et donc montrer diffrents types de pices d'identit.


OK, en ce cas il serait prfrable de crer une entit-type "piece d'identit"  mettre en relation avec l'infraction. C'est plus volutif car ca permet d'avoir plusieurs pices de diffrents types si besoin.
INFRACTION 0,n --- prsenter --- 0,n  PIECE 1,1 --- typer --- 0,n TYPE_PIECE






> NBUSIF est simplement le numro du bus dans lequel a eu lieu le controle/l'infraction.


Je n'avais pas lu les specs jointes, ok il s'agit uniquement de transport par bus. Dans la vraie vie, il est assez probable qu'on s'intresserait  identifier les bus, mais comme ce n'est pas prcis dans les specs, inutile de s'encombrer.






> En fait, un individu peut payer directement lors du controle (ou dans les 48H) ou alors ne pas payer dans les 48h et alors un proces verbal est ouvert. Je cite "On tiendra compte du fait qu'une infraction ne donne pas toujours lieu  un procs-verbal (distinguer les deux notions)"


OK donc, il faut ajouter une date de paiement dans l'infraction et une asso 0,1 vers le procs verbal, car mme si le paiement n'est pas immdiat, il doit bien y avoir au bout d'un certain temps paiement de l'infraction (au moins dans certains cas  :;): )

----------


## HeroStar

Donc voici le modle amlior avec vos precieux conseils!

D'ailleurs pourquoi relier PIECE  INFRACTION et pas  VOYAGEUR?

Il me reste donc  incorporer les lettres de relances  fraude+30 jours, +1mois, +2 mois et +3mois (et diffrentes par catgorie d'age) et le paiement par le fraudeur (date et montant), le proces ? le bilan annule ?  Il y a aussi "On y constate galement un certain nombre de fausses adresses et impays."

Je ne vois pas vraiment comment intgrer tout a :/

----------


## escartefigue

C'est mieux, mais il reste





> De mme, l'hritage de "contrle" vers "simple" ou infraction pourrait sans doute tre remplac par une association facultative de "contrle" vers "infraction"
> CONTROLE 0,n --- verifier --- 1,1 INFRACTION



Attention, dans cette nouvelle version, une infraction peut concerner plusieurs voyageurs (volontaire ?)
En ce cas, la pice justificative doit tre lie au voyageur

----------


## fsmrel

> l'hritage de "contrle" vers "simple" ou infraction pourrait sans doute tre remplac par une association facultative de "contrle" vers "infraction"
> CONTROLE 0,n --- verifier --- 1,1 INFRACTION


Je confirme. _Utere sed non abutere_  comme dit un de mes voisins qui en connat un rayon. Lentit-type spcialise SIMPLE ne serait pertinente, et donc  mettre en oeuvre  que si elle avait des proprits en propre, que naurait pas lentit-type spcialise INFRACTION.

----------


## escartefigue

> Je confirme. _Utere sed non abutere_  comme dit un de mes voisins qui en connat un rayon. Lentit-type spcialise SIMPLE ne serait pertinente, et donc  mettre en oeuvre  que si elle avait des proprits en propre, que naurait pas lentit-type spcialise INFRACTION.


Ou entrait en jeu dans une association spcifique.

Ni l'un ni l'autre ici, donc on simplifie  ::P:

----------


## HeroStar

Voici la version corrige !

Des ides pour ce qui manque ? Notamment les lettres de relances et le paiement par le fraudeur (date et montant).

----------


## escartefigue

S'il faut grer des relances, elles sont lies  l'infraction

INFRACTION 0,n --- concerner --- 1,1(R) RELANCE
Le (R) matrialise l'identification de la relance relativement  l'infraction (case  cocher sur la patte de l'asso dans Looping)


Quelques remarques

Il est prfrable de prvoir une cardinalit 0,n de contrleur vers infraction afin de pouvoir crer des contrleurs qui n'ont jamais constat d'infraction (nouvelle recrue....)

Dans les tables de typologie, un code est pratique pour les applications (on choisit un code qui permet d'afficher le libell correspondant),  ajouter dans TYPE_PIECE (un char(4) environ suffira bien)

Plutt que "vrifier" j'aurais plutt utilis "constater" comme verbe pour dsigner l'association, mais la je pinaille  :;):

----------


## escartefigue

Je n'avais pas vu cette question :




> D'ailleurs pourquoi relier PIECE  INFRACTION et pas  VOYAGEUR?



S'il est important de savoir quelle pice d'identit a t prsente lors d'une infraction, alors le lien doit concerner l'infraction : un mme voyageur rcidiviste a pu faire l'objet de plusieurs infractions et si l'association est porte par le voyageur, on ne sait plus quelle pice correspond  quelle infraction (dans la mesure o ce voyageur possde plusieurs pices d'identit bien sr)

Si ce n'est pas le cas, vous pouvez en effet associer la pice d'identit au voyageur  ::):

----------


## fsmrel

HeroStar, 

Dans votre MCD, vous avez modlis le fait quune infraction peut tre associe  plus dun contrle (cardinalit 0,n porte par la patte connectant INFRACTION  et VERIFIER) :

 CONTROLE--0,n---VERIFIER---*0,n*--INFRACTION

Mais Escartefigue a bien prcis quune infraction a t constate suite  un contrle et un seul :

 CONTROLE--0,n---VERIFIER---*1,1*--INFRACTION

----------


## HeroStar

Voici le modle mis  jour



Pour moi dans ce modle, on ne gre pas le fait qu'un procs verbal n'a lieu que si un paiement n'a pas t effectu dans les 48H  ::roll:: ? Pareil pour la relance, qui dpend de si un procs verbal est ouvert ou non.

----------


## escartefigue

la cardinalit de infraction vers constater doit tre 1,1 

Le paiement comme la relance pourraient tre identifis relativement  l'infraction 

Pour le reste a me semble pas mal  ::):

----------


## HeroStar

> la cardinalit de infraction vers constater doit tre 1,1 
> 
> Le paiement comme la relance pourraient tre identifis relativement  l'infraction 
> 
> Pour le reste a me semble pas mal



- Relativement  l'infraction ? cd avec une association type ?
- Est-ce que le modle suffit  expliquer le fait que la lettre est envoye si le PV n'est pas pay au del de 48h ?  ::roll::

----------


## escartefigue

> - Relativement  l'infraction ? cd avec une association type ?


L'identification relative est utilise dans les cas o une entit-type n'a pas d'existence propre, qu'elle a besoin d'une autre entit-type.
L'un des cas typiques est la ligne de commande : sans commande, pas de ligne de commande. La ligne de commande est dite "entit-type faible".

Quand on met en oeuvre l'identification relative, elle est schmatise dans les MCD et selon les logiciels de modlisation par des parenthses autour des cardinalits (cas de Power AMC) ou un R en suffixe de celles-ci (cas de looping)

Au niveau tabulaire, l'entit-type faible hrite de l'identifiant de l'entit-type forte comme premire composante de sa clef primaire

Ainsi, pour le modle conceptuel suivant
CL_CLIENT (CL_ident, CL_nom,...) 1,n --- passer --- 1,1 CO_COMMANDE (CO_ident, CO_date, ...) 1,n --- contenir --- 1,1(R) LG_LIGNE(LG_ident, LG_quantite, ...)

On obtiendra les tables suivantes (PK soulignes, FK suffixes #)
CL_CLIENT(CL_ident, CL_nom,...)
CO_COMMANDE(CO_ident, CO_date, ..., CL_ident#)
LG_LIGNE(CO_ident#, LG_ident, LG_quantite, ...) 
On voit que dans la table LG_LIGNE, la clef trangre CO_ident contribue  la constitution de la clef primaire
Cette construction est bnfique aux performances car elle permet  toutes les lignes d'une mme commande d'tre stockes dans un espace disque contigu si la PK est _clustered_

Si je modifie l'exemple ci-dessus pour identifier galement la commande relativement au client, j'obtiens alors
CL_CLIENT (CL_ident, CL_nom,...) 1,n --- passer --- 1,1(R) CO_COMMANDE (CO_ident, CO_date, ...) 1,n --- contenir --- 1,1(R) LG_LIGNE(LG_ident, LG_quantite, ...)

Ce qui donne les tables
CL_CLIENT(CL_ident, CL_nom,...)
CO_COMMANDE(CL_ident#, CO_ident, CO_date, ...)
LG_LIGNE(CL_ident#, CO_ident#, LG_ident, LG_quantite, ...) 





> - Est-ce que le modle suffit  expliquer le fait que la lettre est envoye si le PV n'est pas pay au del de 48h ?


Non : c'est au traitement de prendre en compte ce besoin

----------


## Mathis 30

Bonjour @HeroStar

Est-ce que t'as eu la correction de ce cas  ?

----------


## HeroStar

Non jamais, dsol!

----------

