# Gnral Dveloppement > ALM > Modlisation > Schma > [MCD] Modlisation Association avec plusieurs types de cotisations

## ecarbill

Bonjour  tous.
J'essaye de modliser la gestion d'associations donc les principes de bases peuvent diffrer (Niveau de cotisation diffrents) selon les principes suivants:

P01. Une personne peut appartenir  plusieurs associations
P02. Une Association peut tre subdiviser en plusieurs groupes auxquels les membres sont affects
P03. Une cotisation peut tre fixe pour chaque groupe pour une priode donne (Les montants peuvent tre diffrents d'un groupe  l'autre)
P04. Une cotisation peut tre fixe pour chaque adhrent pour une priode donne (Les montants peuvent tre diffrents d'un groupe  l'autre).

Je joins le projet de MCD que j'ai fais sous PowerDesigner.



Nanmoins je souhaiterais avoir un coup de main sur deux points

1. Au niveau P02 tel que j'ai modliser je vois une redondance puisque avec la relation 


> AFFECTER


 entre adhesion et Groupe, je voulais supprimer la relation 


> ADHES_ASSOCIATION


, mais en ce moment au niveau MPD, ce sont les cls primaires de *personne*  et *groupe*  qui apparaitront comme cl trangre dans adhesion. Ce que je ne souhaite pas puisque je me dis que c'est dans l'association qu'une personne adhre, l'affectation  un groupe vient aprs.

2. Concernant les cotisation qui peuvent tre lies soit  un adherant, soit  un groupe, j'ai du mal  faire la bonne modlisation. J'avais voulu utiliser la notion d'hritage en crant une entit *cotisant*  dont les fils seraient *adhesion*  et *groupe*. Mais je ne sais pas si cela correspond vraiment au concept d'hritage, et en plus j'ai du mal  le raliser.

Merci d'avance de mclairer avec vos expertises

----------


## escartefigue

Bonjour Ecarbill,

C'est une trs bonne chose d'avoir communiqu les rgles de gestion, mais il faut les complter avant de pouvoir valider le MCD.

Par exemple :




> P01. Une personne peut appartenir  plusieurs associations


Trs bien, mais il manque la rgle dcrivant l'autre sens de l'association.
Cette rgle manquante est possiblement "Pxx :  une association *peuvent* adhrer plusieurs personnes" ou encore "Pxx :  une association adhre *au moins* une personne"
le verbe "adhrer" est mieux adapt qu'"appartenir"

Il en va de mme pour les autres associations du MCD dont chaque "patte" doit trouver sa justification dans une rgle de gestion.


Que sont les attributs "contact1"  "contact3" de l'entit-type [personne] ?

S'il s'agit de n de tlphone, d'adresse courriel ou autre, il est prfrable de modliser une entit-type spcifique qu'on pourra appeler par exemple [MEDIA] et qui sera associe  la personne autant de fois que ncessaire.
Cette ET [MEDIA] sera galement associe  un type de mdia pour savoir de quoi il s'agit (type tlphone fixe domicile, type tlphone portable pro, fax pro, portable perso...)
Ce qui donne [PERSONNE] 0,n --- (posseder) --- 1,1 [MEDIA] 1,1 --- (typer) --- 0,n[TYPE_MEDIA]

S'il s'agit du nom d'autres personnes  contacter, alors il faut tablir une relation reflexive de l'ET [PERSONNE] sur elle-mme.


Mais pour l'instant, comme dit plus haut, le plus important est de complter les rgles de gestion

Bon courage  ::):

----------


## ecarbill

> mais il manque la rgle dcrivant l'autre sens de l'association


Bonjour, en fait j'ai mis en exergue juste les lments pour lesquels j'avais un soucis mais je vais complter comme je peux:



P01. Une personne peut *adhrer*  plusieurs associations *et chaque personne adhre  au moins une association*
P02. Une Association peut tre subdiviser en plusieurs groupes auxquels les membres sont affects, *et chaque groupe est reli  au moins une association*
P03. Une cotisation peut tre fixe pour chaque groupe pour une priode donne (Les montants peuvent tre diffrents d'un groupe  l'autre)
P04. Une cotisation peut tre fixe pour chaque adhrent pour une priode donne (Les montants peuvent tre diffrents d'un groupe  l'autre).
P05. Une adhsion est relative  une et une seule personne
P06. Une adhsion est relative  une et une seule association
p07. Une cotisation peut faire l'objet de 0 ou plusieurs versements
p08. Un versement porte sur une et une seule cotisation

Voila pour l'essentiel. merci d'avance

----------


## escartefigue

On en sait dj un peu plus, mais

Une personne peut-elle adhrer  une association sans pour autant tre rattache  un groupe ?
Une personne peut-elle adhrer  une association en tant rattache  plusieurs groupes de cette mme association ?

Par ailleurs, je note qu'en vertu de la rgle P02, un mme groupe peut concerner plusieurs associations :
_et chaque groupe est reli  au moins une association_

Ce faisant, compte tenu de cette rgle
_Une cotisation peut tre fixe pour chaque groupe pour une priode donne_
Si ce groupe concerne plusieurs associations, alors la cotisation est la mme pour les  diffrentes associations.

On est bien d'accord ?

Tous ces points sont importants, le modle conceptuel en dpend.

----------


## ecarbill

Bonjour  escartefigue et merci de ton intrt pour mon problme.




> Une personne peut-elle adhrer  une association sans pour autant tre rattache  un groupe ?


La reponse est non.  Chaque adhrent est forcment rattach  un groupe




> Une personne peut-elle adhrer  une association en tant rattache  plusieurs groupes de cette mme association ?


Chaque adhrent est rattach  un et un seul groupe




> Par ailleurs, je note qu'en vertu de la rgle P02, un mme groupe peut concerner plusieurs associations :
> et chaque groupe est reli  au moins une association


Un groupe est rattach  une et une seule Association. Effectivement, j'avais mal formul le P02

merci et bonne journe  toi

----------


## Paprick

Bonjour,

En plus des conseils aviss de Escartefigue, j'aurais une remarque concernant l'association "HABITER" : telle qu'elle est modlise, une personne ne peut pas revenir sur une commune o elle a habit prcdemment (ou alors, on perd les dates de la premire priode) ; en effet, pour 1 personne ET 1 commune, il n'y a qu'une seule date de dbut et de fin...
Pour rgler ce problme, il faudrait intgrer la date de dbut dans l'identifiant de "HABITER", et donc passer par une tripatte avec une classe d'entit fictive "CALENDRIER" : on constatera alors que l'identifiant de la commune n'est plus utile (proprit d'irrductibilit  respecter), une CIF rglant le problme.
Voici ce que donnerait cette partie de MCD (fait avec _Looping_, PowerDesigner ne grant pas les CIF  ma connaissance) :


Version avec CIF abrge :


Le MLD correspondant donnera a :

Bonne continuation !
						
					



*Patrick Bergougnoux* - Professeur des Universits au Dpartement Informatique de l'IUT de Toulouse III_La simplicit est la sophistication suprme_  (Lonard de Vinci)LIVRE : Modlisation Conceptuelle de Donnes - Une Dmarche Pragmatique
_Looping_ - Logiciel de modlisation gratuit et libre d'utilisation

----------


## ecarbill

Bonjour Paprick et merci pour cette aide.

Nanmoins j'attend toujours des aides pour mon problme initial qui tait:

1. Comment bien modliser les cotisations tant donn qu'une cotisation peut etre fix par groupe (ce sont les groupes qui s'acquittent de la cotisation) ou par adhrent (chaque adhrent paye un montant par priode)

2. Comment bien modliser l'appartenance d'un adhrent  une association, et sont affectation  un groupe  l'intrieur de cette association

Merci bien

----------


## escartefigue

Pour bien rpondre  ces besoins, il faut bien comprendre le contexte, d'o les questions qui prcdent.

Et en voici une autre, dsol, mais ce qui est vident pour vous, ne l'est pas pour nous

Il faut bien distinguer la notion de *tarification* de la notion de *paiement*

Quand on dit que 


> ce sont les groupes qui s'*acquittent* de la cotisation


 ou que 


> chaque adhrent *paye* un montant par priode


on parle de qui paye, mais a ne veut pas dire que le tarif est forcment diffrent.

Si le tarif est le mme que ce soit le groupe ou la personne qui paye alors il faut simplement avoir un tarif, associ  l'association et probablement  l'anne (le tarif pouvant changer)

Si au contraire le tarif est diffrent selon que c'est la personne qui paye ou bien le groupe alors il faut associer d'une part un tarif groupe au groupe et d'autre part un tarif associ  l'asso

----------


## ecarbill

Bonjour  escartefigue
 Merci pour tes contributions.



> on parle de qui paye, mais a ne veut pas dire que le tarif est forcment diffrent.
> 
> Si le tarif est le mme que ce soit le groupe ou la personne qui paye alors il faut simplement avoir un tarif, associ  l'association et probablement  l'anne (le tarif pouvant changer)
> 
> Si au contraire le tarif est diffrent selon que c'est la personne qui paye ou bien le groupe alors il faut associer d'une part un tarif groupe au groupe et d'autre part un tarif associ  l'asso


Je l'avait prcis  dans mes rgles de gestions



> P03. Une cotisation peut tre fixe pour chaque groupe pour une priode donne (Les montants peuvent tre diffrents d'un groupe  l'autre)
> P04. Une cotisation peut tre fixe pour chaque adhrent pour une priode donne (Les montants peuvent tre diffrents d'un groupe  l'autre).


En effet les montants peuvent etre diffrents selon les individus et aussi selon les groupes. C'est pour ca dans mon MCD que j'avais propos, les montants taient dans les associations DEVOIR_INDIV et DEVOIR_GPE

Bonne journe a vous

----------


## escartefigue

En effet, du coup les deux associations de votre modle se justifient.
Mais ce faisant, plusieurs personnes d'un mme groupe risquent de payer des montants diffrents, a fait un peut facturation " la tronche du client" comme on dit trivialement.


Pour la deuxime question :



> Comment bien modliser l'appartenance d'un adhrent  une association et son affectation  un groupe  l'intrieur de cette association


Comme toute personne n'adhre  une association qu'au travers d'un groupe et qu'un groupe ne concerne qu'une et une seule association, on connait  l'appartenance (l'adhsion) d'une personne  une association en passant par le groupe

Voici une proposition de MCD pour cette partie, dans laquelle j'ai ajout une contrainte d'inclusion pour vrifier qu'une personne ne peut faire partie d'un groupe que si elle adhre  l'association de ce groupe.
J'ai galement ajout une entit-type fictive CA_calendrier, car j'ai suppos que les tarifs voluaient selon les annes
Enfin, j'ai fait pointer la personne et le groupe vers une nouvelle entit-type tarif qui peut tre associe soit  la personne (tarif individuel) soit au groupe (tarif de groupe).




Le MLD correspondant :




Et enfin le DDL ici dclin pour SQL server (je n'ai pas cod la contrainte, mais ce n'est pas grand chose  faire  :;):  :


```

```

----------


## ecarbill

Bonsoir escartefigue
Merci du temps consacr  ma proccupation et surtout pour cette reponse vraiment dtaille.

Globalement j'ai compris la modlisation,  part l'entit CA_calendrier dont j'ai du mal a saisir le lien avec CO_cotiser et AP_appliquer.

Bonne soire

----------


## escartefigue

J'ai suppos que les tarifs appliqus  une personne ou  un groupe pouvaient voluer dans le temps : un mme personne ou un mme gropue peut se voir appliquer un tarif T1 en 2022 puis un tarif T2 en 2023.
Pour y parvenir, il faut que l'association entre personne (ou groupe) et tarif fasse participer la date qui deviendra une composante de la clef primaire de la table issue de l'association.

CA_calendrier est ce qu'on appelle une entit-type "fictive", elle ne participe au modle que pour enrichir la clef primaire des tables associatives au niveau SQL, elle ne deviendra pas une table, ce serait inutile ***.  :;): 

Voyez le DDL gnr dans lequel on retrouve l'attribut CA_dtdeb comme composante de la PK des tables associatives.

*** avec le logiciel Looping que j'ai utilis pour modliser, le nom de l'entit-type CA_calendrier aurait du tre entre parenthses, mais j'ai visiblement oubli de cocher la case "entit-type fictive", raison pour laquelle ce n'est pas le cas  :;):

----------


## ecarbill

Ah OK c'est effectivement ca. je comprend parfaitement.

Merci et bonne journe  toi

----------

