Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 [MCD] Je n'ai que 4 tables. Mais besoin de votre aide Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
shonan
Newbiiiie
Newbiiiie




Messages: 12

MessagePosté le: Jeu 03 Sep 2009 - 16:50 Répondre en citantRevenir en haut

Bonjour,

J'ai raté mon bts cette année et je compte le repasser en candidat libre (soutenance de projet).

J'ai effectué mon stage dans une entreprise de Vin et j'ai réaliser un site Web.
L'objectif était de créer un site vitrine présentant les différents vins aux clients standard et aux client professionnel (restaurateurs, chef d'entreprise).

Lors de ma soutenance de stage les correcteurs m'ont reproché de ne pas avoir deux tables supplémentaires sur mon MCD : CATÉGORIE et DOMAINE.
Image

Effectivement j'ai mit Catégorie dans la table VIN car si j'avais créé une table supplémentaire pour la Catégorie elle n'aurait eu qu'un seul attribut et ça me paraissait inutile.

C'est mieux comme ça ?? J'ai encore l'impression qu'il y a pleins d'erreur :

Image

Si la table CLIENT PRO n'est pas relié à une autre table c'est que c'est juste une page de connexion sur le site pour accéder à un moteur de recherche différent.

Merci de corriger mes erreurs si vous en voyez! j'ai plus le droit à l'erreur cette année =.= (bon j'ai un an pour me préparer ).
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
Dest
Accro à Web-IG
Accro à Web-IG


Ecole d'Ingénieurs
Sexe: Sexe:Masculin
Messages: 209
Localisation: 93

MessagePosté le: Jeu 03 Sep 2009 - 17:36 Répondre en citantRevenir en haut

Yep..
Si tu es en ARLE y a pas de probleme.. essaie juste d'avoir au moins une cardinalité en "1,n" ->"1,n"

Si t'es en DA.. la j'avoue c'est short!!

Va falloir gonfler les options...

_________________
2009-2012 : EFREI
2008-2009 : BTS Informatique Gestion Option ARLE
2006-2008 : BTS Informatique Gestion Option DA
2005-2006 : Bac STI option Génie Électrotechnique
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
Seraphin
Résident du forum
Résident du forum


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 305
Localisation: Paris

MessagePosté le: Jeu 03 Sep 2009 - 17:37 Répondre en citantRevenir en haut

Je trouve pas que de créer une entité avec une seul attributs soit gênant. D'ailleurs si n regarde les cardinalités on remarque que tu as mis 1;1 et 1;N donc il y a une logique à créer cette entité.

Moi je dirais que sur le deuxième j'enlèverais l'entité "promotion". Pourquoi ?

Tu as mis comme cardinalité 0;1 et 0;1. Ce qui veut dire que le vin à une promotion ou pas et qu'une promotion est valable que pour un seul vin.
Pourquoi ne pas mettre "promotion" en tant qu'attributs de l'entité "vin" ?
Techniquement ça allègerai ton MCD (même si ce n'est pas ce que tu cherches) à la fin de le rendre plus claire (rigueur à avoir quand il s'agit de MCD beaucoup plus grand).

Cependant, je le trouve bien ton deuxième MCD, et je pense que je serais arrivé à quelque chose comme ça moi aussi. Mais si je te fais cette remarque c'est tout simplement qu'un jour un prof m'as dit que c'était une faute de laisser deux entité avec des cardinalités de type X;1.

Je trouve que ça se discute, un collègue est tomber d'accord avec moi, mais il est vrai que lors de MCD plus complexe il est impératif d'effectuer ce genre de manœuvre sinon vl'a le mal de crane Very Happy...

Dit moi ce que tu penses.

++

_________________
Image
Image
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
shonan
Newbiiiie
Newbiiiie




Messages: 12

MessagePosté le: Jeu 03 Sep 2009 - 20:33 Répondre en citantRevenir en haut

Salut!
Déjà merci pour les réponses rapide.
Seraphin, ça m'embête un peu d'enlever la table Promotion car comme l'a dit Dest mon MCD est plutôt léger pour un dev. Puis certains vins n'ont pas de promotions. C'est si choquant que ça ?

ça ne gène pas trop la table CLIENT PRO qui n'est pas relié ? Vu que les CLIENT PRO ont accès aux VIN_PRO je pourrais les relier comme ci-dessous :

Image


Mais dans mon code, après la connexion d'un client pro celui-ci à juste accès à une nouvelle page avec un moteur de recherche répertoriant uniquement les vins pro. En gros je n'ai pas de clés étrangères dans mes tables. Donc je ne sais pas si c'est vraiment correct. (j'ai un peu du mal à m'expliquer sur ce coup la).
Voir le profil de l'utilisateurEnvoyer un message privé
obito
Résident du forum
Résident du forum


Post-BTS
Sexe: Sexe:Masculin
Messages: 307
Localisation: Bordeaux

MessagePosté le: Jeu 03 Sep 2009 - 21:26 Répondre en citantRevenir en haut

Perso je suis tout à fait de l'avis de Seraphin, 0,1 des deux côtés ca ne se fait pas =)

Suit son conseil il est bon, rien ne t'empêche de mettre le même prix dans "prix_promo" et "prix" ^^ au pire tu peux changer "prix_promo" en "pourcentage_reduc"

Et aussi la qualité d'un MCD ne se mesure pas aux nombres d'entités mais à la logique qui a résulté de la création de ce dernier^^

_________________
2011-2012 : M2 MIAGE - Ingénieur développement à France Télécom
2010-2011 : M1 MIAGE
2009-2010 : L3 MIAGE
2007-2009 : BTS informatique option développeur d'applications
2006-2007 : BAC STG option GSI
Voir le profil de l'utilisateurEnvoyer un message privé
blew
Accro à Web-IG
Accro à Web-IG



Sexe: Sexe:Masculin
Messages: 156

MessagePosté le: Jeu 03 Sep 2009 - 21:33 Répondre en citantRevenir en haut

perso jpourrais pas t'aider mais jvais suivre les conseils qu'on te donne..

Jsuis à chier en MCD (j'arrive jamais à les faire)

Je comprends pas la logique de rajouter une table pour catégorie par exemple : c'est quoi l'utilité en fait ? se compliquer la vie ? Laughing

_________________
Mojo Mojo
2010-2013 Master Pro INGP-CNAM (Contrat d'alternance)
2010-2011 LP ARE Tetras (Contrat Pro)
2008-2010 BTS IG ARLE Ecoris (Contrat Pro)
Voir le profil de l'utilisateurEnvoyer un message privé
shonan
Newbiiiie
Newbiiiie




Messages: 12

MessagePosté le: Jeu 03 Sep 2009 - 23:35 Répondre en citantRevenir en haut

Je vais l'enlever pour les promos alors.

Pour répondre à ta question Blew je cite Seraphin : "d'ailleurs si on regarde les cardinalités on remarque que tu as mis 1;1 et 1;N donc il y a une logique à créer cette entité."
Voir le profil de l'utilisateurEnvoyer un message privé
Seraphin
Résident du forum
Résident du forum


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 305
Localisation: Paris

MessagePosté le: Ven 04 Sep 2009 - 12:20 Répondre en citantRevenir en haut

blew a écrit:
perso jpourrais pas t'aider mais jvais suivre les conseils qu'on te donne..

Jsuis à chier en MCD (j'arrive jamais à les faire)

Je comprends pas la logique de rajouter une table pour catégorie par exemple : c'est quoi l'utilité en fait ? se compliquer la vie ? Laughing


La logique est que catégorie est une entité à part entière. Elle possède ses propres attributs (ce qui la définie). Dans ce cas "catégorie" permet d'avoir une table ou sont répertoriées les catégories (logique imparable :p).

Tu n'as donc pas besoin de faire une requête sur "vin" pour connaitre les catégories (simplification, time is money Wink . De plus on pourrait imaginer "catégorie" avec plus d'attributs du style: "type_categorie", "taille_categorie" etc...

la ce sont des exemples à la volée pas forcement cohérents mais c'est l'idée. Je ne sais si je suis clair dans cette explication :s...

Pour revenir au sujet Shonan comme l'as dit obito tu as plusieurs solutions pour "promotion"

Déjà ça doit devenir un attributs de "vin"
et faire comme cela:

VIN
num_vin
prix
appelation
millésime
promo
prix_promo

Ou "promo" est de type boolean, si un vin a une promo "promo" aura pour valeur "1" à l'inverse il aura pour valeur "0".

Moi je ferrais comme ça, après je ne dit pas que c'est la solution ultime. Peut être il y a t il une autre façon de faire ?

La ou tu as le choix c'est sur "prix_promo", soit tu m'es le nouveaux prix donc inférieur à "prix", soit tu enregistres le pourcentage ou la valeur de la réduction "10%" ou "10€".

Je sais pas si cela est assez clair, je l'espère.

Moi je pencherais plus vers le pourcentage, pourquoi ?
déjà cela viendrait à enregistrer un entier: par exemple 10% de reduc tu enregistre dans ta table "10" tout simplement.

je trouve que ça évite les embrouille (avec nouveau prix, ancien prix etc...). Avec le pourcentage de reduc tu peut avoir l'ancien prix, le nouveau, le taux de reduc etc...

Je trouve que ça te permet d'être le plus flexible possible. Mais arrêter mois tout de suite si je me trompe.

Pour finir:
je me retourne vers des gens plus compétents en la matière. Est on sur qu'il faille relier "client pro" à vin pro" plutôt qu'a "vin"?
Je dit ça mais je connais pas la réponse. C'est juste pour être sur que cela soit correct. Même si ça me choque pas ici, comme le principe d'héritage je ne le maitrise pas trop je préfère relever ce point Wink.

_________________
Image
Image
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
Dest
Accro à Web-IG
Accro à Web-IG


Ecole d'Ingénieurs
Sexe: Sexe:Masculin
Messages: 209
Localisation: 93

MessagePosté le: Ven 04 Sep 2009 - 12:31 Répondre en citantRevenir en haut

blew a écrit:
perso jpourrais pas t'aider mais jvais suivre les conseils qu'on te donne..

Jsuis à chier en MCD (j'arrive jamais à les faire)

Je comprends pas la logique de rajouter une table pour catégorie par exemple : c'est quoi l'utilité en fait ? se compliquer la vie ? Laughing


Bah c'est tout simple.. Tu fait une table par element que tu cherches a diversifier.
Par exemple dans un site de e-commerce tu pourrait faire 2 tables genre client et produits.. Mais le probleme c'ets que chaque produits est different.. donc t'as plutot interet de detailler chaque type de produit.. donc creation de nouvelle table genr "livre", "dvd", etc...
Les tables servent a mettre de facon ordonné toutes les informations du site et les liaisons servent a ce qu'elles communiquent entre elles Smile

_________________
2009-2012 : EFREI
2008-2009 : BTS Informatique Gestion Option ARLE
2006-2008 : BTS Informatique Gestion Option DA
2005-2006 : Bac STI option Génie Électrotechnique
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
blew
Accro à Web-IG
Accro à Web-IG



Sexe: Sexe:Masculin
Messages: 156

MessagePosté le: Ven 04 Sep 2009 - 14:18 Répondre en citantRevenir en haut

Dest a écrit:


Bah c'est tout simple.. Tu fait une table par element que tu cherches a diversifier.
Par exemple dans un site de e-commerce tu pourrait faire 2 tables genre client et produits.. Mais le probleme c'ets que chaque produits est different.. donc t'as plutot interet de detailler chaque type de produit.. donc creation de nouvelle table genr "livre", "dvd", etc...
Les tables servent a mettre de facon ordonné toutes les informations du site et les liaisons servent a ce qu'elles communiquent entre elles Smile


Seraphin a écrit:


La logique est que catégorie est une entité à part entière. Elle possède ses propres attributs (ce qui la définie). Dans ce cas "catégorie" permet d'avoir une table ou sont répertoriées les catégories (logique imparable :p).

Tu n'as donc pas besoin de faire une requête sur "vin" pour connaitre les catégories (simplification, time is money Wink . De plus on pourrait imaginer "catégorie" avec plus d'attributs du style: "type_categorie", "taille_categorie" etc...

la ce sont des exemples à la volée pas forcement cohérents mais c'est l'idée. Je ne sais si je suis clair dans cette explication :s...


Merci Wink
Je vais tenter d'appliquer ça

_________________
Mojo Mojo
2010-2013 Master Pro INGP-CNAM (Contrat d'alternance)
2010-2011 LP ARE Tetras (Contrat Pro)
2008-2010 BTS IG ARLE Ecoris (Contrat Pro)
Voir le profil de l'utilisateurEnvoyer un message privé
shonan
Newbiiiie
Newbiiiie




Messages: 12

MessagePosté le: Ven 04 Sep 2009 - 17:57 Répondre en citantRevenir en haut

Merci Seraphin, tes explications sont clair : )

Sinon entre la table CLIENT PRO et VIN PRO, le fait qu'il y ait un héritage pose problème ??
Voir le profil de l'utilisateurEnvoyer un message privé
Seraphin
Résident du forum
Résident du forum


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 305
Localisation: Paris

MessagePosté le: Ven 04 Sep 2009 - 18:04 Répondre en citantRevenir en haut

shonan a écrit:
Merci Seraphin, tes explications sont clair : )

Sinon entre la table CLIENT PRO et VIN PRO, le fait qu'il y ait un héritage pose problème ??


ça c'est la question que je me pose. Enfin si on veut faire les choses bien faut il faire comme tu as fait ou relier à "vin" plutôt qu'à "vin pro".

Si mes souvenirs sont bon c'est du merise 2 ça, et je connais pas assez pour savoir ce qui est bien ou pas.

J'aurais eu tendance à faire comme toi. Après je ne sais pas...
Si quelqu'un qui connait mieux pourrait nous répondre, ça m'intéresse aussi :p

_________________
Image
Image
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
shonan
Newbiiiie
Newbiiiie




Messages: 12

MessagePosté le: Ven 02 Oct 2009 - 22:58 Répondre en citantRevenir en haut

Je fais un petit up!
:'|
Voir le profil de l'utilisateurEnvoyer un message privé
Toham
Newbiiiie
Newbiiiie


BTS IG - Option développeur 2ème année

Messages: 9

MessagePosté le: Dim 28 Fév 2010 - 04:19 Répondre en citantRevenir en haut

Image

Bonjour, voici le MCD que je te propose. Alors je t'explique ma version des choses.

Les vins ont toujours le même nom, il n'y a que le millésime qui change, alors aulieu d'avoir une redondance d'information, on créé un table millésime qui sera en relation avec la table VIN par du N des deux cotés, la tables qui sera créer en relationnel (Produit) contiendrat une clé primaire composé du millésime et du numéro du vin, et en propriété supplémentaire , il fut pas oublier le prix, lui seul change selon le millésime. Grace à cela, a grand échelle on gagne beaucoup plus de place que n'importe quel autre proposition que vous faites.
Un promotion, si j'ai bien compris, et si ma logique est bonne (pas sur), une promotion se fait sur une période donnée, et cela touche que certains articles.
Alors suffit d'ajouter date de début et de fin dans la table promotion, de mettre du N dans les 2 cardinalités de l'association (ici Ref_1) entre Vin et promotion. Dedans on retrouvera le prix (ou le pourcentage que vous appliquer selon la bouteille) de la bouteille, comme sa vous gardez toute trace de la promotion que vous aurez faites. Et je ne comprend pas pourquoi vous mettiez du 0.1/0.1 car on fait plusieurs promotions, surtout que le vins se gardes beaucoup d'année, une bouteille est succeptible d'avoir une plus d'une promotion sur 20 ans par exemple, de plus une promotion touche forcément 1 ou plusieurs bouteills.

Voila un erreur grave, il ne faut pas rajouté de champs numéro dans les table vin pro et particulier, l'héritage le précise par default. (je n'ai pas fait attention à la contrainte d'heritage (X, XT , T)

Voila si tu ne comprend pas quelque chose demande.
Tcho
Voir le profil de l'utilisateurEnvoyer un message privé
shonan
Newbiiiie
Newbiiiie




Messages: 12

MessagePosté le: Mer 03 Mar 2010 - 08:08 Répondre en citantRevenir en haut

Wah merci Toham, tes explications sont très clair et t'as mit le point sur pas mal de défauts. Surtout que t'as passé du tps à reproduire le mcd. je te dois une fière chandelle.

par contre le site est fini et il ne correspond pas au mcd. (Bcp de vins dans la base + le moteur de recherche est adapté donc si je dois tout refaire ça va être long, très long :S ). Si j'utilise ton mcd Toham et que dans ma BDD je n'ai pas la même organisation (cependant elle reste fonctionnelle) tu crois que le jurie va sanctionner malgré mes explications?

Et ma table CLIENT pro, je peux la mettre en relation avec la table VIN PRO ? (vu que seul les client pro peuvent accéder au moteur de recherche répertoriant les vins pro).

Edit : j'ai refait la BDD, ça marche nikel Smile


Dernière édition par shonan le Mer 17 Mar 2010 - 15:04; édité 1 fois
Voir le profil de l'utilisateurEnvoyer un message privé
shonan
Newbiiiie
Newbiiiie




Messages: 12

MessagePosté le: Mer 03 Mar 2010 - 08:15 Répondre en citantRevenir en haut

a il y a une petite erreur. Une catégorie correspond à 0,n domaine. Vu que la catégorie c 'est "Bordeaux" "Champagnes" etc.

Et dans ma base un domaine correspond à un seul type de catégorie
Voir le profil de l'utilisateurEnvoyer un message privé
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum