IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Validation de mon MCD


Sujet :

Schéma

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut Validation de mon MCD
    Bonjour aux professionnels,
    Je viens vers vous pour la validation du MCD de mon projet.
    En fait, je veux developper une application de gestion d'une association.
    Voici mes règles de gestion:

    1) Membre-Adhesion
    Un Membre paie 1,N fois un droit d'adhésion.
    Un adhesion est payée par 1,1 Membre.

    2) Membre-Categorie
    UnMembre appartient à 1,1 catégorie
    Une catégorie renferme 1,n Membre

    3) Membre-Paiement-Cotisation
    Un Membre effectue 1,n Paiement pour une cotisation donnée.
    Une cotisation peut être l'objet de 1,n paiement de 1,1 même Membre donné.

    4) Membre-Paiement-Evenement
    Un Membre fait 1,n Paiement pour 1,1 Evenement donné.
    Un Evenement peut enregistrer 1,n Paiement d'1,1 même membre donné.

    5) Membre-Type_paiement
    Un Paiement possède 1,1 Type_paiement.
    Un Type_paiement appartient à 1,n Paiement.
    Ici Type_paiement à seulement 2 valeurs ("Partiel" pour les paiements partiels des membres et "Totalite" pour les paiements au comptant, donc j'ai 2 choix:

    1er choix: - Metrre les deux types de paiements dans des options de select (<select><option>Partiel</option><option>Totalite</option></select> dans la table "Paiements".

    2ème choix: Créer une table à part pour les types de paiements "Type_paiement" (type_paiement(id INTEGER, partiel VARCHAR, totalite VARCAHR).
    Je ne sais pas lequel des choix me sera favorable, aux experts de m'en dire plus...

    6) Montant-Paiement
    Un montant est lié à 1,n Paiement.
    Un Paiement est lié à 1,1 Montant.

    7) Categorie-Membre-Paiement-Montant
    Une Categorie doit (1,1) Montant pour (1) Paiement donné.
    Un Montant est dû par (1,n) Categorie pendant (1,1) même Paiement. Du fait que 2 categories différentes peuvent payer le même montant pour un paiement d'une cotisation lamda.
    Cela pourrait se traduire par:
    Un Membre doit (1,1) Montant pour (1) Paiement donné et pour (1) evenement ou pour (1) cotisation donné en fonction de sa "Categorie".
    Un Montant est dû par (1,n) Membre d'une même "Categorie" pour (1) "evenement" ou pour (1) "Cotisation" fesant objet d'(1) Paiement.

    En effet, c'est là que j'ai vraiment un soucis de cohérence, car la table "Categorie" est liée à la table "Membre" qui elle est liée au "Paiement", tandis que la table "Paiement" est liée à la table "Montant" et la table "Montant" est encore liée à la table "Categorie". Il ya donc une fermeture dans la relation [categorie-Membre-Paiement-Montant], pourtant je pense qu'il ya une règle de MERISE qui dit qu'il ne doit pas avoir de fermeture entre les relations...sauf si je me trompe. Voir MCD.

    Ce qui m'emmène à vouloir créer cette fermeture de relation, c'est le fait que j'ai retiré la colonne "Montant" de la table "Cotisation" et aussi de la table "Evenement" pour vouloir en faire une table, car chaque Evenement de l'association a un montant qui est fonction de la "Categorie" des "Membres", et, le "Montant" de la "Cotisation" est aussi fonction de la "Categorie" du "Membre". Ce qui veut dire qu'il ya des membres qui payent des "Montant" supérieurs à d'autres Membres en fonction de leur categorie, pour les evenements et aussi pour les cotisations.
    J'ai donc besoin d'une bonne solution pour la règle 7.

    8) Que pouvez-vous me dire aussi sur la table Adhesion? Doit-elle être reliée directement au "Membre" ou à la table "Paiement" comme Cotisation et Evenement?

    Je joints le MCD à mes règles de gestion pour que vous puissiez l'analyser minutieusement.

    Nom : MCD_ASSO.jpg
Affichages : 5474
Taille : 62,1 Ko
    Encore merci pour la reflexion!

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 338
    Points : 39 737
    Points
    39 737
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Citation Envoyé par Busima Voir le message
    Je viens vers vous pour la validation du MCD de mon projet.
    En l'occurrence, votre schéma est un MLD, nous sommes au niveau tabulaire.

    Citation Envoyé par Busima Voir le message
    En fait, je veux developper une application de gestion d'une association.
    Voici mes règles de gestion:
    C'est une excellente chose d'avoir pensé aux règles de gestion, mais il manque des explications sur le contexte, il faut planter un peu le décor et définir le vocabulaire.

    Qu'est ce qu'une catégorie, qu'est-ce qui fait qu'un membre est rattaché à telle ou telle catégorie ?
    Pourquoi certains membres payent plusieurs adhésions (ce que d'ailleurs la table adhésion en l'état ne permet pas, il faudrait un identifiant d'adhésion pour le permettre) ?
    Quelle différence entre adhésion et cotisation ?
    Qu'est-ce qu'un événement ?


    Libellé ainsi, ce genre de règle est peu compréhensible, voire pas du tout !
    Citation Envoyé par Busima Voir le message
    7) Categorie-Membre-Paiement-Montant
    Une Categorie doit (1,1) Montant pour (1) Paiement donné.
    Un Montant est dû par (1,n) Categorie pendant (1,1) même Paiement. Du fait que 2 categories différentes peuvent payer le même montant pour un paiement d'une cotisation lamda.
    Cela pourrait se traduire par:
    Un Membre doit (1,1) Montant pour (1) Paiement donné et pour (1) evenement ou pour (1) cotisation donné en fonction de sa "Categorie".
    Un Montant est dû par (1,n) Membre d'une même "Categorie" pour (1) "evenement" ou pour (1) "Cotisation" fesant objet d'(1) Paiement.
    Remplacez ce type de formulation par une expression fonctionnelle, en français
    Par exemple :
    Une Categorie doit (1,1) Montant pour (1) Paiement donné.
    veut peut être dire
    A chaque catégorie est associée un et un seul montant

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    En l'occurrence, votre schéma est un MLD, nous sommes au niveau tabulaire.
    Oui, je l'ai fait exprès pour que vous compreniez mieux et rapidement sans voir le MLD.

    C'est une excellente chose d'avoir pensé aux règles de gestion, mais il manque des explications sur le contexte, il faut planter un peu le décor et définir le vocabulaire.

    Qu'est ce qu'une catégorie, qu'est-ce qui fait qu'un membre est rattaché à telle ou telle catégorie ?
    ==>Une catégorie est la différence entre les membres (catégorie "Doyen", catégorie "Cadet", catégorie "junior" ...) par exemple. Donc chaque membre est forcement rattaché à une catégorie.

    Pourquoi certains membres payent plusieurs adhésions (ce que d'ailleurs la table adhésion en l'état ne permet pas, il faudrait un identifiant d'adhésion pour le permettre) ?
    ==>Merci pour le rappel sur le "id" de la table "adhésion", je l'avais oublié. Certains membres payent plusieurs adhésions parce que certains membres peuvent payer l'adhésion et quitter l'association après quelques temps, ensuite revenir encore après pour adhérer. Ils doivent donc payer à nouveau l'adhésion pour redevenir membre. Je vois là une colonne "statut" à 2 valeurs "actif" si le membre paye régulièrement les cotisations, "inactif" s'il cesse le paiement des cotisations.

    Quelle différence entre adhésion et cotisation ?
    Qu'est-ce qu'un événement ?
    ==> Différence entre adhésion, cotisation et evenement:
    adhésion est la somme que paye une personne pour devenir membre, tandis que cotisation est la contribution des membres pour faire fonctionner l'association( le paiement de la cotisation est périodique alors que le paiement de l'adhésion peut se faire une seule fois). A la différence de cotisation, evenement est un peu comme cotisation, cependant il n'est pas périodique car son paiement se fait lors d'un événement (soit pour le mariage ou anniversaire d'un membre...).

    Libellé ainsi, ce genre de règle est peu compréhensible, voire pas du tout !

    Remplacez ce type de formulation par une expression fonctionnelle, en français
    Par exemple :
    Une Categorie doit (1,1) Montant pour (1) Paiement donné.
    veut peut être dire
    A chaque catégorie est associée un et un seul montant
    Qu'est-ce que vous voyez ici comme cardinalité, puisque la table "adhesion" est rattachée à la table "paiement" et mérite un "montant" à payer, ensuite la table "cotisation" est aussi rattachée au paiement tout comme la table "evenement", et, toutes ces tables méritent un montant à payer. D’où la création de la table "montant". Est-ce que vous trouvez cette réflexion juste de ma part?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 338
    Points : 39 737
    Points
    39 737
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Citation Envoyé par Busima Voir le message
    Bonjour,
    Citation Envoyé par escartefigue Voir le message
    En l'occurrence, votre schéma est un MLD, nous sommes au niveau tabulaire.
    Oui, je l'ai fait exprès pour que vous compreniez mieux et rapidement sans voir le MLD.
    Utilisez le bouton "répondre avec citation" puis copiez-collez les balises de début (quote=...) et de fin de citation (/quote) pour découper les différentes parties qui vous intéressent
    Je suppose que vous vouliez dire "sans voir le MCD"
    Or le MCD est justement la traduction en schéma des règles de gestion, il est donc préférable à ce stade de schématiser le MCD plutôt que directement le MLD



    Citation Envoyé par Busima Voir le message
    Qu'est ce qu'une catégorie, qu'est-ce qui fait qu'un membre est rattaché à telle ou telle catégorie ?
    ==>Une catégorie est la différence entre les membres (catégorie "Doyen", catégorie "Cadet", catégorie "junior" ...) par exemple. Donc chaque membre est forcement rattaché à une catégorie.
    C'est donc une conséquence directe de l'âge. Stocker la catégorie serait une erreur, ce serait un risque d'incohérence avec l'âge.
    Vous pouvez la déduire de la date de naissance, dont vous déduirez l'âge (que vous ne stockerez pas non plus pour la même raison).
    Bien évidemment, il ne faut donc plus identifier le membre relativement à la catégorie



    Citation Envoyé par Busima Voir le message
    ==>Merci pour le rappel sur le "id" de la table "adhésion", je l'avais oublié. Certains membres payent plusieurs adhésions parce que certains membres peuvent payer l'adhésion et quitter
    l'association après quelques temps, ensuite revenir encore après pour adhérer. Ils doivent donc payer à nouveau l'adhésion pour redevenir membre. Je vois là une colonne "statut" à 2 valeurs
    "actif" si le membre paye régulièrement les cotisations, "inactif" s'il cesse le paiement des cotisations.
    Si la durée de validité d'une adhésion est invariante (un an par exemple), la date d'adhésion suffit pour connaitre sa validité, le statut serait en ce cas une redondance, à supprimer



    Citation Envoyé par Busima Voir le message
    ==> Différence entre adhésion, cotisation et evenement:
    adhésion est la somme que paye une personne pour devenir membre, tandis que cotisation est la contribution des membres pour faire fonctionner l'association( le paiement de la cotisation
    est périodique alors que le paiement de l'adhésion peut se faire une seule fois). A la différence de cotisation, evenement est un peu comme cotisation, cependant il n'est pas périodique car
    son paiement se fait lors d'un événement (soit pour le mariage ou anniversaire d'un membre...).
    Est-ce qu'on peut simplifier en disant que :
    - est adhérent tout membre à jour de ses cotisations
    - le montant de la cotisation est plus élevé pour un membre non adhérent que pour un membre déjà adhérent ?

    Si oui
    - le statut adhérent ou non adhérent est le résultat d'un calcul basé sur la présence d'une cotisation dans l'année qui précède
    - la date d'adhésion est à déplacer dans "membre"
    - le paiement concerne donc soit la cotisation (avec un supplément éventuel lors de l'adhésion) soit un événement.
    Il faut donc faire apparaitre une Contrainte d'Intégrité Fonctionnelle de type "partition" à indiquer sur le MCD

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Bonjour escartefigue, je commence d'abord par vous remercier. Je vous donne plus d'informations:

    ==>Une catégorie est la différence entre les membres, par exemple (catégorie "Doyen", catégorie "Cadet", catégorie "junior" ... ou catégorie "Riche", catégorie "Moins riche", catégorie "Neutre"...). Donc chaque membre est forcement rattaché à une catégorie.

    Citation Envoyé par escartefigue Voir le message
    C'est donc une conséquence directe de l'âge. Stocker la catégorie serait une erreur, ce serait un risque d'incohérence avec l'âge.
    Vous pouvez la déduire de la date de naissance, dont vous déduirez l'âge (que vous ne stockerez pas non plus pour la même raison).
    Bien évidemment, il ne faut donc plus identifier le membre relativement à la catégorie
    Non non, la catégorie n'est pas forcement une conséquence directe de l'age. Je veux forcement mettre une différence entre les membres. Par exemple lorsqu'on considère l'ONU, il y a des membres qui ont le droit de véto pour une raison quelconque et d'autres n'en ont pas. C'est ce que je veux faire, d'autres membres doivent être démarqués des autres soit par le montant des cotisations...

    Citation Envoyé par escartefigue Voir le message
    Si la durée de validité d'une adhésion est invariante (un an par exemple), la date d'adhésion suffit pour connaitre sa validité, le statut serait en ce cas une redondance, à supprimer
    ==> La différence entre l'adhésion, la cotisation et evenement est que adhésion est la somme que paye une personne pour devenir membre, tandis que cotisation est la contribution des membres pour faire fonctionner l'association( le paiement de la cotisation est périodique alors que le paiement de l'adhésion peut se faire une seule fois). A la différence de cotisation, evenement est un peu comme cotisation, cependant il n'est pas périodique car son paiement se fait lors d'un événement (soit pour le mariage ou anniversaire d'un membre...).

    Citation Envoyé par escartefigue Voir le message
    Est-ce qu'on peut simplifier en disant que :
    - est adhérent tout membre à jour de ses cotisations?
    Malheureusement non. Est adhérent tout membre qui paye son droit d'adhésion (en quelque sorte adhérent=membre).

    Citation Envoyé par escartefigue Voir le message
    - le montant de la cotisation est plus élevé pour un membre non adhérent que pour un membre déjà adhérent ?
    Non, on pourra parler de montant de cotisation élevé d'un membre par rapport à un autre seulement à cause de la "catégorie" du membre. On pourra dire par exemple que la "categorie riche" paye plus que la "categorie moins riche". (Comme ici, pour un evenement A,..., montant categorie riche = 1500 euros, categorie moins riche montant=1000 euros et montant categorie neutre =500euros.)

    Citation Envoyé par escartefigue Voir le message
    - le paiement concerne donc soit la cotisation (avec un supplément éventuel lors de l'adhésion) soit un événement.
    Oui le paiement concerne soit la cotisation, soit l'adhésion ou soit un événement, et non avec un supplément éventuel lors de l'adhésion parce que l'adhésion elle même est concernée par le paiement.
    Encore merci pour votre temps que vous prenez!

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Y a quelqu'un pour m'aider?

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 338
    Points : 39 737
    Points
    39 737
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Busima Voir le message
    Y a quelqu'un pour m'aider?
    Quelques réponses pour vous débloquer



    Citation Envoyé par Busima Voir le message
    Non non, la catégorie n'est pas forcement une conséquence directe de l'age. Je veux forcement mettre une différence entre les membres. Par exemple lorsqu'on considère l'ONU, il y a des membres qui ont le droit de véto pour une raison quelconque et d'autres n'en ont pas. C'est ce que je veux faire, d'autres membres doivent être démarqués des autres soit par le montant des cotisations...
    OK, mais en ce cas, il faut considérer que "cadet", "junior" et autres valeurs liées à l'âge ne sont pas des catégories. Ce sont peut être des critères de tarification (cotisation modulée en fonction de la classe d'âge par exemple), mais pas des catégories, ce serait comme expliqué plus haut, une redondance.



    Citation Envoyé par Busima Voir le message
    ==> La différence entre l'adhésion, la cotisation et evenement est que adhésion est la somme que paye une personne pour devenir membre, tandis que cotisation est la contribution des membres pour faire fonctionner l'association(le paiement de la cotisation est périodique alors que le paiement de l'adhésion peut se faire une seule fois). A la différence de cotisation, evenement est un peu comme cotisation, cependant il n'est pas périodique car son paiement se fait lors d'un événement (soit pour le mariage ou anniversaire d'un membre...).
    Je suppose que seul un membre déjà adhérent peut payer une cotisation et que seul un membre déjà adhérent peut payer pour un événement.
    Du coup une Contrainte d'Intégrité Fonctionnelle (CIF) de type inclusion doit être modélisée de la relation "effectuer" vers la relation "payer"



    Citation Envoyé par Busima Voir le message
    Malheureusement non. Est adhérent tout membre qui paye son droit d'adhésion (en quelque sorte adhérent=membre).
    Si vous voulez pouvoir enregistrer des membres qui n'ont pas encore payé leur adhésion, il faut alors une cardinalité mini de zéro de "MEMBRE" vers "ADHESION"
    Ne seront réellement considérés comme membres que ceux qui ont une occurrence de relation "payer" dont la date de fin de validité n'est pas atteinte (attribut date de fin à ajouter dans l'entité-type "ADHESION")



    Citation Envoyé par Busima Voir le message
    Non, on pourra parler de montant de cotisation élevé d'un membre par rapport à un autre seulement à cause de la "catégorie" du membre. On pourra dire par exemple que la "categorie riche" paye plus que la "categorie moins riche". (Comme ici, pour un evenement A,..., montant categorie riche = 1500 euros, categorie moins riche montant=1000 euros et montant categorie neutre =500euros.)
    Les critères de tarifications méritent une étude rigoureuse si vous ne voulez pas être soupçonné d'établir les tarifs "à la tête du client"
    Il faut donc recenser précisément les règles selon lesquelles s'établissent les tarifs (classe d'âge, revenu imposable, nombre d'enfants, tarif personnes âgées, étudiant, handicapé...)
    La catégorie n'est peut être pas un attribut en soi mais seulement la résultante d'autre critères.



    Citation Envoyé par Busima Voir le message
    Oui le paiement concerne soit la cotisation, soit l'adhésion ou soit un événement, et non avec un supplément éventuel lors de l'adhésion parce que l'adhésion elle même est concernée par le paiement.
    En ce cas "ADHESION" devrait être en relation avec "PAIEMENT" et il devrait y avoir une CIF de type partition pour mentionner qu'un paiement concerne une et un seule des 3 entités-type

Discussions similaires

  1. [MCD] Validation de mon MCD
    Par mrocks dans le forum Schéma
    Réponses: 4
    Dernier message: 24/01/2008, 17h10
  2. [MCD] Utilité d'une entité "Adresse" dans mon MCD ?
    Par korrigan dans le forum Schéma
    Réponses: 1
    Dernier message: 05/09/2007, 11h41
  3. Meilleure façon de créer mon MCD
    Par yamino dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/07/2007, 13h39
  4. Avis concernant mon MCD
    Par Invité dans le forum Schéma
    Réponses: 16
    Dernier message: 21/05/2007, 18h02
  5. Probleme de cardinalité dans mon mcd/mpd
    Par bluecurve dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/03/2006, 08h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo