MCD pour une appli de voitures d'occasions

MCD pour une appli de voitures d'occasions - SQL/NoSQL - Programmation

Marsh Posté le 05-02-2021 à 10:40:37    

Bonjour à tous,
 
je met en place la base de données pour un projet permettant à un négociant indépendant de mettre en relation garages professionnels et particulier.
 
Plusieurs choses à savoir :
 
1) Le négociant est le seul administrateur
2) Les garagistes professionnels n'ont pas de compte accessible personnellement (donc pas de mot de passe)
3) Le négociant(administrateur) ajoute et gère lui meme les comptes pro et leurs garages via un back admin dont seul lui à l'accés
4) Les particuliers n'ont pas de compte ils appellent directement le négociant
5) Les caractéristiques tel que l'année , la marque , le modèle , et le carburant seront accessible sous forme de liste déroulante
6) L'API et le Back Admin seront crées avec Symfony.
 
Pouvez vous me dire si mon MCD est correct ?
Si non comment l'améliorer SVP  
 
PS: ce qui est en gras correspond à un attribut UNIQUE
Merci par avance
 
https://i.ibb.co/dkX1CyN/Modele-MCD.jpg

Reply

Marsh Posté le 05-02-2021 à 10:40:37   

Reply

Marsh Posté le 05-02-2021 à 12:05:43    

Alors, le plus gros pb, à mon sens, c'est les relations entre marque, modèle et type de carburant.
Un modèle a une relation n,1 avec la marque et le type de carburant.
 
Donc, ton annonce est liée uniquement au modèle.
 
La relation entre Professionnel et garage me semble casse-gueule sur le plan légal. Professionnel semble être le proprio du garage. Or, un garage est géré par un gérant qui sera probablement le contact entre le négociant, le garage et le client. A noter que c'est le garage qui porte la raison sociale et le SIRET il me semble.
Pour simplifier, t'aurais peut-être intérêt à faire une table garage qui contient toutes les infos légales de l'entreprise avec une relation 1,n avec une table contacts qui contient les nom, prénom... des contacts du garage. Tu peux éventuellement ajouter un champ "type de contact" pour indiquer si le gars est le gérant ou un sous-fifre  :whistle:
 
Edit : je vois pas de champ "statut" sur ton annonce. A un moment donné, l'annonce va bien expirer (soit parce que ça a été conclu soit parce que le client a abandonné...). Je ne vois pas non plus de date de création de l'annonce ni de date de parution. Sinon, c'est normal de pas avoir de table client :??: Pour de la CRM, c'est un peu gênant quand même, non ?
 
Edit : correction, c'est une relation 1-n entre le modèle et la marque : un modèle n'a qu'une seule marque mais une marque a plusieurs modèles.


Message édité par rufo le 09-02-2021 à 13:47:51

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 08-02-2021 à 11:09:40    

Bonjour,
 
tout d'abord merci pour ton aide.
 
Pour les relations est ce que tu crois que je dois faire :  
 
Annonce -----> modèle et ensuite relier carburant marque et année ???
 
Pour le professionnel il faut savoir que c'est un projet d'ecole donc certains aspect legaux ne sont pas prix en compte.  
 
Pour les clients comme écrit en début de topic ils n'ont pas de compte.  
 
Cordialement  
 

Reply

Marsh Posté le 08-02-2021 à 12:30:11    

Relie mon post :
"Un modèle a une relation n,1 avec la marque et le type de carburant.
 
Donc, ton annonce est liée uniquement au modèle." ;)


Message édité par rufo le 09-02-2021 à 13:46:46

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-02-2021 à 09:51:14    

Voilà une version amélioré qu'en pensez vous ?  
https://i.ibb.co/cXmCBjx/Capture.jpg

Message cité 1 fois
Message édité par haha34 le 09-02-2021 à 09:51:41
Reply

Marsh Posté le 09-02-2021 à 11:01:55    

Franchement (même si je ne suis vraiment pas un expert des diagramme UML et de ce genre de relation 0,n), je ne comprend pas ta modélisation du véhicule !
Une voiture c'est une année de mise en circulation, une marque et un carburant (enfin dans ce dernier cas ça dépend de comment on modélise les véhicules hybride / gpl mais perso je préfèrerais avoir tout les cas de figure dans une table motorisation que plusieurs clé pointant sur plusieurs carburant).
Du coups quel est l’intérêt d'avoir une table dédié à ces informations plutôt qu'une colonne ?
Ou alors en tout cas on passe dabord par la marque qui offre des choix de modèles qui lui même ouvre à des dates de mise en circulation et des motorisations possible, ça aurait déjà plus de sens non ?
 
C'est ce que font tout les site de prise de rendez vous genre Norauto, Feuvert etc...
Avant de réinventer la roue, il est utile de regarder ce que font les autres (quitte à corriger / améliorer si c'est possible) ! ^^


---------------
D3
Reply

Marsh Posté le 09-02-2021 à 11:10:43    

J'ai séparé le tout car ces champs doivent être accessible comme critère de recherche d'où le fait qu'ils soient séparés.  
 
du coup il vaudrait mieux que je fasse ?  
 
Annonce 1-1 -------->0,n modele 1,1 --------------> 1,n marque  
                                  Id modele
                                  carburant
                                   année  
 
 

Reply

Marsh Posté le 09-02-2021 à 11:14:32    

ou :
 
Annonce 1-n --------> 1,1 marque 1,n -------------> 1,n modele
                                                                                 Id modele
                                                                                 carburant
                                                                                 année

Reply

Marsh Posté le 09-02-2021 à 11:48:59    

Voilà une nouvelle version :)
 
https://i.ibb.co/xGy7PLj/Capture2.jpg
https://i.ibb.co/jGdrBfM/Capture2.jpg

Message cité 1 fois
Message édité par haha34 le 09-02-2021 à 11:54:25
Reply

Marsh Posté le 09-02-2021 à 13:17:25    

Ben du coups je ne sais pas si c'est la bonne direction...
 
Si l'idée c'est de faire un moteur de recherche, tu vas avoir une requête qui pour remonter à l'annonce va faire 3 jointures (carburants JOIN modeles JOIN marques JOIN annonces).
En terme de perf autant avoir ces critères relié à l'annonce pour avoir une clef indexé directement non ?
 
J'en restes là, la modélisation c'est vraiment pas ma tasse de thé, j’espère que d'autres pourront prendre le relais et t'aider.


---------------
D3
Reply

Marsh Posté le 09-02-2021 à 13:17:25   

Reply

Marsh Posté le 09-02-2021 à 13:42:16    

haha34 a écrit :

Voilà une version amélioré qu'en pensez vous ?  
https://i.ibb.co/cXmCBjx/Capture.jpg


L'année de circulation est portée par l'annonce car c'est elle qui représente le véhicule à vendre. Par contre, effectivement, la table "Modèle" doit comporter la colonne "type carburant" vu que c'est une relation 1,1.
Il te faut bien une table pour les marques.


Message édité par rufo le 09-02-2021 à 13:46:17

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-02-2021 à 13:50:15    


Non, pas bon du tout. Ton annonce n'est pas liée à une marque mais à un modèle :o
Tout ce qui a une relation 1,1 doit être dans la même table. Donc les infos du compte sont dans la table pro. Du reste, ça n'a pas de sens de trouver le garage que possède un pro en passant via son compte de connexion  :pfff:
 
Edit : fais les modifs sur le schéma que j'ai commenté ci-dessus.


Message édité par rufo le 09-02-2021 à 13:50:52

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-02-2021 à 10:16:49    

Bonjour,
 
merci pour votre aide !
 
 
C'est mieux ?
 
https://i.ibb.co/2tLtds7/Capture3.jpg


Message édité par haha34 le 10-02-2021 à 10:17:13
Reply

Marsh Posté le 10-02-2021 à 13:45:57    

Non. Dans la table modèle, tu vas avoir un champ "carburant". Donc, y'a pas de table carburant.
Et l'année de mise en circulation du véhicule à vendre, c'est un champ dans la table "annonce". Si tu veux gérer l'année de parution du modèle, c'est dans la table modèle que tu rajoute cette date. Mais ça, je pense que l'acheteur s'en fout.
Et la marque n'est liée qu'à la table modèle. On fait jamais des cycles dans des MCD avec des relations de même nature.
 
On fait très rarement des tables avec un seul champ :o Du reste, si tu as fait du Merise, tu sais que l'ID aurait été l'année justement et pas un ID auto-incrément et pareil pour le carburant.
 
Donc, à ta table annonce, y'a que le lien avec modèle et modèle est lié à Marque.
 
Astuce pour construire un MCD : on ne doit avoir qu'un seul chemin pour accéder à une info. Si t'en a plus d'1 pour accéder à la même info (dans ton cas, connaître la marque du véhicule à vendre vient l'annonce), tu t'es planté. Je t'invite vivement à revoir ce qu'est la forme 3NF de Codd pour faire un bon MCD : https://fr.wikipedia.org/wiki/Forme [...] me_normale :o
 
Je ne parle pas de la dénormalisation a des fins d'optimisation car tu es encore à l'école.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-02-2021 à 14:02:01    

Bonjour rufo,
 
merci beaucoup pour tes remarques, je vais lire attentivement le lien que tu m'as envoyé, prendre en considération ton avis et essayer de m'améliorer à nouveau.
 
Merci :)

Reply

Marsh Posté le 10-02-2021 à 14:47:23    

Voilà une nouvelle version en suivant tes conseils  
https://i.ibb.co/zsvVXmL/Capture4.jpg

Reply

Marsh Posté le 10-02-2021 à 18:26:36    

Même si tu ne fais pas de CRM, tu ne définis par de statut pour dire que l'annonce est close ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-02-2021 à 19:14:40    

Hmm, bien vu !
Ca peut être un plus.  
 
 

Reply

Marsh Posté le 11-02-2021 à 15:28:25    

A vue de nez, je mettrais une relation (n,n) entre images et annonce, avec une table de liaison entre les 2 : une annonce peut contenir plusieurs images, mais ça me parait pas déconnant de réutiliser des images pour d'autres annonces


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 11-02-2021 à 17:40:21    

S'pas faux mais vu que c'est un exo d'école, je doute qu'ils vont aller chercher de telles optimisations. ;)
Déjà qu'il a pas voulu gérer quel client avant acheté le véhicule pour faire de la CRM :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-02-2021 à 09:29:40    

Bonjour,
 
dans le cadre ou un client lambda souhaiterais contacter la plateforme via une annonce.
Est ce que l'ajout du formulaire de contact sous cette forme est bonne ?  
 
ps: j'ai anglophoniser le tout  :pt1cable:  :whistle:  
 
https://i.ibb.co/26h0y5p/mcd-anglais.jpg

Reply

Marsh Posté le 15-02-2021 à 13:43:10    

haha34 a écrit :

Bonjour,
 
dans le cadre ou un client lambda souhaiterais contacter la plateforme via une annonce.
Est ce que l'ajout du formulaire de contact sous cette forme est bonne ?  
 
ps: j'ai anglophoniser le tout  :pt1cable:  :whistle:  
 
https://i.ibb.co/26h0y5p/mcd-anglais.jpg


Adresse en anglais, c'est address :o
 
C'est normal de ne pas avoir traduit aussi les relations ?
 
La relation client/annonce n'est pas bonne : c'est du n,n. Un client pourra être intéressé par plusieurs annonces et un annonce aura plusieurs clients intéressés. Il faudrait toutefois avoir une relation pour conserver quel client a finalisé l'annonce. Il te manque aussi le statut de l'annonce (annulée, vendue, en cours...).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-02-2021 à 13:46:02    

Hello, ca roule, merci pour les précisions :) je corrige tout ça :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed