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 :

Facturation registre de société


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut Facturation registre de société
    Bonjour,

    Je tente actuellement de modéliser un MCD mais j’ai des soucis sur cette partie :

    Une société gère des registres de société.
    Lorsqu’un registre est créé, il doit être côté et paraphé par le tribunal.
    Lorsque c’est fait, le tribunal retourne le registre et facture sa prestation au gestionnaire. Pour l'instant je considère que
    A partir de cette facture, le gestionnaire génère une pré-facture composée de lignes qui sera transmise au service compta pour envoi au client.

    Voici mes problèmes :
    1 – Je ne pense pas avoir fait de lien entre la facture reçue et la pré-facture générée, ni dans le MCD1, ni dans le MCD 2

    2 - Je ne sais pas comment modéliser le déclenchement de la pré-facture à partir de la réception de la facture, puisqu’on ne représente ici que les données. Peut-être qu’il faut mettre une note sur le MCD, qui permet de savoir qu’on va écrire un trigger pour déclencher un message de rédaction de pré-facture au gestionnaire ?

    3 - Dans le MCD 2 j’ai représenté le gestionnaire, mais est-ce nécessaire ? C’est forcément lui qui génère qui reçoit la facture et génère la pré-facture.

    Pouvez-vous m’aider ?

    Merci

    Voici les 2 MCD que j'ai générés, sans être satisfaite :
    Images attachées Images attachées  

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Dans ton MCD1, on pourrait comprendre que le tribunal envoie la facture au client, ce qui n'est pas le cas, si j'ai bien compris.

    Il vaudrait mieux dire que la facture concerne un client et supprimer l'association entre pré-facture et client qui serait alors redondante.

    Tribunal -0,n----Envoie----1,1- Facture -0,n----Génère----1,1- Pré-facture
    Client -0,n----Concerne---1,1-------|

    Est-ce normal que la facture puisse générer plusieurs factures ?
    Est-ce normal que la pré-facture puisse ne comporter aucune ligne, contrairement à la facture qui en comporte au moins une ?

    Le MCD2 n'est pas bon ! Facture est une entité et pas une association !

    1 – Je ne pense pas avoir fait de lien entre la facture reçue et la pré-facture générée, ni dans le MCD1, ni dans le MCD 2
    Si puisque dans le MCD1 la pré-facture est générée par une et une seule facture.

    2 - Je ne sais pas comment modéliser le déclenchement de la pré-facture à partir de la réception de la facture, puisqu’on ne représente ici que les données. Peut-être qu’il faut mettre une note sur le MCD, qui permet de savoir qu’on va écrire un trigger pour déclencher un message de rédaction de pré-facture au gestionnaire ?
    Ça tient plutôt du traitement, donc à représenter dans un MCT :
    Facture reçue --/Déclencher pré-facture/-- Pré-facture émise

    3 - Dans le MCD 2 j’ai représenté le gestionnaire, mais est-ce nécessaire ? C’est forcément lui qui génère qui reçoit la facture et génère la pré-facture.
    S'il y a plusieurs gestionnaires et que tu dois mémoriser qui a généré la pré-facture, c'est utile.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour CinePhil,

    Merci pour tes réponses.
    A partir de tes remarques j'ai généré un autre MCD qui est beaucoup clair.

    J'ai corrigé les différentes cardinalités :
    facture génère une seule pré-facture
    préfacture contient de 1 à N lignes

    J'ai remplacé l'entité "gestionnaire" par l'entité "employé du gestionnaire".

    Le MCD2 n'est pas bon ! Facture est une entité et pas une association !
    A partir de ce post http://sqlpro.developpez.com/cours/m...eritage/#L3#L3, je me suis inspiré du sort réservé à l’entité "COMMANDE" qui est transformée en relation. Je ne suis pas non plus très convaincue du résultat, mais il est vrai que la relation deviendra une table. Alors pourquoi pas ?
    Images attachées Images attachées  

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    OK le MCD me semble bon.
    A partir de ce post http://sqlpro.developpez.com/cours/m...eritage/#L3#L3, je me suis inspiré du sort réservé à l’entité "COMMANDE" qui est transformée en relation.
    Sauf si je n'ai pas bien compris, tu n'as pas d'héritage dans ton modèle !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Oui, c'est exact.

    Mais j'ai essayé de faire une modélisation par héritage. Dans d'autres parties je gère des sociétés (le gestionnaire, le client, les autres sociétés), les personnes (l'employé, le contact), du coup j'ai essayé de gérer l'héritage jusqu'au bout. C'est pas très réussi

    J'ai une autre question :
    Je dois gérer des procès verbaux. Il y a beaucoup de texte que je ne peux pas paramétrer. Dans quoi stocke-t-on du très long texte, comme un paragraphe ? le varchar doit avoir des limites ?
    Peut-être que je dois poser la question ailleurs ?

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par feuilledotone Voir le message
    Mais j'ai essayé de faire une modélisation par héritage. Dans d'autres parties je gère des sociétés (le gestionnaire, le client, les autres sociétés), les personnes (l'employé, le contact), du coup j'ai essayé de gérer l'héritage jusqu'au bout. C'est pas très réussi
    Si je comprends bien, l'entité Gestionnaire est une spécialisation de l'entité Personne ? Ou même de la spécialisation Employé ?
    Gestionnaire -(1,1)----Etre----0,1- Employé -(1,1)----Etre----0,1- Personne

    Il faut alors relier cette entité Gestionnaire à la génération de la pré-facture, plutôt que employé, si les autres employés non gestionnaires ne peuvent pas générer de pré-facture.

    J'ai une autre question :
    Je dois gérer des procès verbaux. Il y a beaucoup de texte que je ne peux pas paramétrer. Dans quoi stocke-t-on du très long texte, comme un paragraphe ? le varchar doit avoir des limites ?
    Peut-être que je dois poser la question ailleurs ?
    Ce n'est effectivement plus tellement l'objet de ce forum.
    Les capacités des différents types de colonnes peuvent dépendre du SGBD.
    Si le texte à stocker est long, tu peux utiliser par exemple un type TEXT sous MySQL.
    Si tu n'as pas de recherche à faire sur le contenu des procès verbaux, mais seulement les afficher, et s'ils existent déjà sous forme de fichier (traitement de texte, PDF...), il vaut mieux stocker à part les fichiers et enregistrer dans la BDD le lien vers le fichier.
    Certains SGBD tel SQL Server, sont capables de gérer ça de manière sécurisée eux-mêmes ; c'est à dire que l'accès aux fichiers est impossible sans le recours au SGBD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Concernant l’héritage, j’y reviendrais plus tard, car pour le moment je ne vois très bien où cela peut m’emmener.

    Actuellement j’ai un problème (et même plusieurs) tout bête, mais que je n’arrive pas à résoudre.

    Voici le descriptif de ce que j’essaye de modéliser :


    L’entreprise gère des registres (sous forme de classeurs).
    Une entreprise extérieure peut, pour une raison X, emprunter un ou plusieurs classeurs du registre.
    Au moment de l’emprunt, il faut noter le nom de la personne à qui on transmet le registre (le contact), le nom de la personne qui transmet le registre (le collaborateur), la raison pour laquelle le registre est emprunté (1 raison), le mode de transmission (1 mode), et une attestation que doit signer le contact (ça peut aussi être une lettre si le mode de transmission est un courrier). Toutes ces informations doivent êtres présentes.
    Plus tard, lorsqu’on a besoin du registre et qu’il est emprunté, on peut faire une relance pour que la société nous le rende.

    Premier point :

    Je ne sais pas comment modéliser l’emprunt. Est-ce une entité ou une relation ?
    En effet, si je dis que l’emprunt est une relation, alors je ne sais pas comment relier la relation relance à la relation emprunte.
    Et si je dis que emprunte est une entité, alors pourquoi ne pas dire que relance est aussi une entité ?

    Je joins 2 MCD avec chacune des solutions. Je ne doute pas qu'il y a à redire dessus.

    Second point : j’ai un problème de cardinalité.

    Je pense que ma question concerne les bases du MCD, mais je me la pose à chaque fois, et je ne sais pas comment faire pour que cela devienne clair :
    Si on considère l’entité mode (le mode de livraison peut être par exemple : en mains propres, par courrier normal, par courrier avec accusé de réception, par livreur …).
    Chaque emprunt ne peut avoir qu’un seul mode de livraison, mais chaque mode peut concerner plusieurs emprunts.
    Quelle cardinalité dois-je mettre ?
    1,1 --> Chaque emprunt ne peut avoir qu’un seul mode de livraison
    0,N --> chaque mode de livraison peut concerner plusieurs emprunts

    Y a-t-il un moyen, ne serait-ce que mnémotechnique ou une petite ruse, pour répondre de façon claire et systématique à ce problème ?

    Cela ne me pose pas de soucis dans une relation binaire. Par ex. :
    Un registre a pour type de registre, et un type de registre concerne de zéro ou plusieurs registres :
    Registre ----------- 1,1 ----------- a pour ----------- 0,N ----------- type de registre

    Merci
    Images attachées Images attachées  

  8. #8
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,

    Commençons par régler le plus urgent grâce à cette règle de modélisation conceptuelle (s'appliquant donc aux MCD) :

    Une association d'ordre supérieur à 2 (ternaire, quaternaire, etc.) ne doit pas contenir de "patte" dont la cardinalité maximale est 1 (donc 0,1 ou 1,1). Si elle en contient, alors l'association peut, et doit, être décomposée.


    Cette règle mérite quelques explications. Prenons l'exemple de l'association Envoie du MCD1 du post #1. Elle peut se lire ainsi :
    - Pour un Tribunal, il existe 0 à n couples {Client, Facture}
    - Pour un Client, il existe 0 à n couples {Tribunal, Facture}
    - Pour une Facture, il existe un et un seul couple {Tribunal, Client}

    La dernière phrase signifie qu'une Facture est envoyée par un et un seul Tribunal et qu'elle ne concerne qu'un et un seul Client. Par conséquent, il faut décomposer l'association Envoie en 2 CIF :

    [ Facture ]--1,1----( est envoyée )----0,n->[ Tribunal ]
    [ Facture ]--1,1----( concerne )----0,n->[ Client ]


    La décomposition étant effectuée, il faut vérifier qu'il n'y a pas de perte sémantique. Autrement dit, il faut vérifier qu'on retrouve bien les 0,n couples {Client, Facture} d'un Tribunal et les 0,n couples {Tribunal, Facture} d'un Client.

    Soit le cas suivant :
    • Le Tribunal T1 envoie 2 factures au client C1
    • Le Tribunal T1 envoie 1 facture au client C2
    • Le Tribunal T2 envoie 1 facture au client C1
    • Le Tribunal T2 envoie 3 factures au client C2

    L'association Envoie contient (clés soulignées) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Tribunal Client Facture
    -------- ------ -------
    T1       C1     F1
    T1       C1     F2
    T1       C2     F3
    T2       C1     F4
    T2       C2     F5
    T2       C2     F6
    T2       C2     F7
    On notera que chaque Facture n'est associée qu'à un seul couple {Tribunal, Client} ; autrement dit, chaque facture n'est représentée qu'une fois dans l'association.

    Vérifions donc qu'il n'y a pas de perte sémantique après décomposition :

    CIF "est envoyée" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Facture Tribunal
    ------- --------
    F1      T1
    F2      T1
    F3      T1
    F4      T2
    F5      T2
    F6      T2
    F7      T2
    CIF "concerne" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Facture Client
    ------- ------
    F1      C1
    F2      C1
    F3      C2
    F4      C1
    F5      C2
    F6      C2
    F7      C2
    Effectuons une "jointure" sur Facture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Facture Tribunal Client
    ------- -------- ------
    F1      T1       C1
    F2      T1       C1
    F3      T1       C2
    F4      T2       C1
    F5      T2       C2
    F6      T2       C2
    F7      T2       C2
    On retrouve bien l'ensemble des lignes de l'association d'origine Envoie à l'identique. Il n'y a pas de perte sémantique.


    Il faudrait donc inspecter et revoir les différents MCD proposés car ils comportent tous au moins une association décomposable. La présence de ce type d'associations dans un MCD révèle souvent soit un amalgame entre données et traitements, soit l'imprécision des règles de gestion ou un défaut dans leur analyse.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

Discussions similaires

  1. [V8] Facturation inter société
    Par belallioui dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 08/04/2015, 19h12
  2. Programme de facturation pour société de courrier expresse
    Par Pando413 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 28/04/2014, 19h45
  3. [Windows]accès base de registre windows
    Par Greg01 dans le forum API standards et tierces
    Réponses: 27
    Dernier message: 05/06/2007, 15h14
  4. Accès à la base de registre windows à distance
    Par xavame dans le forum Sécurité
    Réponses: 4
    Dernier message: 13/07/2005, 15h23
  5. Utilisez vous la base de registres ?
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/06/2002, 13h55

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