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 MCD : remise client [MCD]


Sujet :

Schéma

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut Validation MCD : remise client
    Bonjour,

    Nouvelle info aujourd'hui concernant une application déjà en production et qui, jusqu'ici, tourne comme une horloge (mis à part quelques problèmes de performances dû probablement à des indexes manquants pour certaines requêtes). A ce propos, un grand merci à vous car le MCD avait été en grande partie établi grâce à vous ! (les personnes concernées se reconnaîtront).

    Aujourd'hui donc, on m'informe que certains client sont des clients fidèles ("loyalty" est le terme utilsé dans leur jargon) et qu'en tant que tel, ils ont d'office droit à une remise (en %) sur leurs commandes.

    Au niveau règles de gestion, j'ai traduit cela par :
    Un client peut bénéficier d'une remise (automatique) et une remise (automatique) peut être au bénéfice de plusieurs client.

    Au niveau MCD, l'entité-type REMISE existe déjà car des remises sont déjà appliquées (manuellement) sur des commandes et je modifierais le MCD de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    REMISE-0,N----DEFINIR----1,1-REMISE_CLIENT-(1,1)----BENEFICIER----0,1-CLIENT
    N.B. : J'espère ne pas m'être planté dans le sens des cardinalités.

    Cela vous semble-t-il correct ?
    Kropernic

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Hello Kropernic,


    Ex abrupto, je dirais que ça marche.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Comme quoi, les 9 pages de discussion lors de l'élaboration du mcd au début du projet ont portées leurs fruits .

    Encore merci
    Kropernic

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Kropernic et Fsmrel,

    Au risque d'embrouiller l'affaire, je me permets de m'immiscer...

    Cette satanée cardinalité 0,1 est intéressante (elle revient souvent) et je ne vois pas comment nous pouvons éviter "de descendre dans la tuyauterie".

    MCD :


    dans le détail :


    Je veux en venir aux tables résultantes :
    Client(IdClient, ...) ;
    Remise(IdRemise, ...) ;
    Client_Remise(#IdClient, #IdRemise, DateAttribution, ...)
    ==> si l'on n'y prend garde, la génération de cette table peut donner :
    Client_Remise(#IdClient, #IdRemise, DateAttribution, ...)
    ==> qui ne respecte pas le 0,1.
    Images attachées Images attachées   
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Il s'agit bien du premier cas .

    Par contre, s'il avait fallu pouvoir dire quelle était la remise du client C à la date D, dans ce cas-là, il s'agissait d'une relation plusieurs à plusieurs avec la table de jointure qui en découle au niveau du MLD (et donc du MPD) avec la clef primaire composée telle qu'indiquée dans votre deuxième cas.

    EDIT : Je vois que vous mettez la cardinalité de Client_Remise du côté de Remise entre parenthèse. Pourquoi ? Il s'agit là juste d'une clef étrangère dans une relation un à plusieurs non ?
    Kropernic

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Je ne vois pas comment nous pouvons éviter "de descendre dans la tuyauterie".
    Il suffit de respecter le MCD d’origine, lequel est le suivant, je le rappelle :



    Où, depuis au moins 20 ans, la cardinalité 1,1 mise entre parenthèses a un sens précis dans le contexte PowerAMC : identification de l’entité-type REMISE_CLIENT relativement à l’entité-type CLIENT.

    Dans ces conditions, dans le MLD la clé de la table REMISE_CLIENT est nécessairement le singleton {ClientId} et rien d’autre, volens nolens :



    A la limite, de même qu’il y a des papous papas et des papous pas papas, comme il y a des clients à remise et des clients pas à remise, le MCD peut être repris sous cette forme, pour un MLD inchangé :

    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Merci pour ces précisions, Fsmrel.

    Rabdev, si tu nous lis, ce serait bien de calquer JMerise sur PowerAMC concernant :
    • la possibilité de créer des entités sans attribut ;
    • la production automatique du SQL.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  8. #8
    Membre averti Avatar de rabDev
    Homme Profil pro
    Ingénieur développement logiciels, Concepteur et développeur de JMerise
    Inscrit en
    Mars 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels, Concepteur et développeur de JMerise

    Informations forums :
    Inscription : Mars 2011
    Messages : 106
    Points : 328
    Points
    328
    Par défaut
    Bonjour tout le monde,
    Concernant l'identifiant relatif dans JMerise, il existe seulement graphiquement. Je m'explique: on peut le rajouter graphiquement mais à la génération du MLD, j'ai pas encore fait la migration des clés. C'est pour cette raison, dans la vérification, JMerise signale comme erreur les entités sans clé.

    Aussi, il y a d'autres points que j'ai commencé à faire ou à améliorer dans JMerise. Par l'exemple : tout ce qui concerne l'héritage (graphe et comportement).

    JMerise génère cinq (5) scripts sql pour le moment.

    En tout cas je note tout ce qui se dit sur JMerise et je suis très attentif à toute les propositions ou suggestions.

    A noter, je répondrai aussi à vos mails si vous voulez m'écrire : jmerise@jfreesoft.com
    Merci à tous

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MCD] Validation Mcd, moyen plus simple ?
    Par seb_perl dans le forum Schéma
    Réponses: 18
    Dernier message: 07/09/2010, 02h01
  2. [MCD] validation mcd vidéothèque pour base de données
    Par senv33 dans le forum Schéma
    Réponses: 2
    Dernier message: 13/06/2010, 23h34
  3. [Spring MVC] validation.xml coté client
    Par Tail dans le forum Spring Web
    Réponses: 1
    Dernier message: 28/10/2006, 17h46
  4. Validation MCD avant programmation
    Par Lingo dans le forum Access
    Réponses: 2
    Dernier message: 26/10/2006, 12h05

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