Auteur |
Message |
shonan
Newbiiiie
Messages: 12
|
Posté le:
Jeu 03 Sep 2009 - 16:50 |
|
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.
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 :
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 ). |
|
|
|
|
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
Sexe:
Messages: 209
Localisation: 93
|
Posté le:
Jeu 03 Sep 2009 - 17:36 |
|
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 |
|
|
|
Seraphin
Résident du forum
Sexe:
Messages: 305
Localisation: Paris
|
Posté le:
Jeu 03 Sep 2009 - 17:37 |
|
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 ...
Dit moi ce que tu penses.
++ |
_________________
|
|
|
|
shonan
Newbiiiie
Messages: 12
|
Posté le:
Jeu 03 Sep 2009 - 20:33 |
|
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 :
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). |
|
|
|
|
obito
Résident du forum
Sexe:
Messages: 307
Localisation: Bordeaux
|
Posté le:
Jeu 03 Sep 2009 - 21:26 |
|
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 |
|
|
|
blew
Accro à Web-IG
Sexe:
Messages: 156
|
Posté le:
Jeu 03 Sep 2009 - 21:33 |
|
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 ? |
_________________ 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) |
|
|
|
shonan
Newbiiiie
Messages: 12
|
Posté le:
Jeu 03 Sep 2009 - 23:35 |
|
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é." |
|
|
|
|
Seraphin
Résident du forum
Sexe:
Messages: 305
Localisation: Paris
|
Posté le:
Ven 04 Sep 2009 - 12:20 |
|
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 ? |
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 . 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 . |
_________________
|
|
|
|
Dest
Accro à Web-IG
Sexe:
Messages: 209
Localisation: 93
|
Posté le:
Ven 04 Sep 2009 - 12:31 |
|
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 ? |
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 |
_________________ 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 |
|
|
|
blew
Accro à Web-IG
Sexe:
Messages: 156
|
Posté le:
Ven 04 Sep 2009 - 14:18 |
|
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 |
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
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) |
|
|
|
shonan
Newbiiiie
Messages: 12
|
Posté le:
Ven 04 Sep 2009 - 17:57 |
|
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 ?? |
|
|
|
|
Seraphin
Résident du forum
Sexe:
Messages: 305
Localisation: Paris
|
Posté le:
Ven 04 Sep 2009 - 18:04 |
|
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 |
_________________
|
|
|
|
shonan
Newbiiiie
Messages: 12
|
Posté le:
Ven 02 Oct 2009 - 22:58 |
|
|
|
|
Toham
Newbiiiie
Messages: 9
|
Posté le:
Dim 28 Fév 2010 - 04:19 |
|
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 |
|
|
|
|
shonan
Newbiiiie
Messages: 12
|
Posté le:
Mer 03 Mar 2010 - 08:08 |
|
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 |
Dernière édition par shonan le Mer 17 Mar 2010 - 15:04; édité 1 fois |
|
|
|
shonan
Newbiiiie
Messages: 12
|
Posté le:
Mer 03 Mar 2010 - 08:15 |
|
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 |
|
|
|
|
|