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 :

MCD pour une appli de voitures d'occasions


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut MCD pour une appli de voitures d'occasions
    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

    Nom : Modele MCD.JPG
Affichages : 218
Taille : 93,5 Ko

  2. #2
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 650
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour,

    Avant d'aller plus loin, vous commettez une erreur sur le sens des cardinalités que vous avez systématiquement inversées .
    Cela vous donnerait un drôle de résultat au moment de générer le MLD et le code SQL de création des tables de la BD !
    Par ailleurs, je ne suis pas certain que la table "annee_circulation" soit utile : autant introduire l'année directement dans l'annonce.
    D'autre part, pourquoi avez-vous rajouté "id_annonce" dans "image_annonce" ? Et êtes-vous sûr qu'une même image puisse servir à plusieurs annonces (cf. vos cardinalités 1,n/1,n pour "comporte" ?)
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonsoir,

    Effectivement, les cardinalités sont à revoir, certaines sont inversées, d'autres suspectes, comme par exemple le fait qu'une annonce est publiée par plusieurs garages.
    À confirmer au travers de règles de gestion.

    De plus, les marques et les modèles étant indépendants et en l'absence de contrainte, vous pouvez associer librement une "Clio" à la marque "Fiat", une "Golf" à la marque "Opel" etc...

    Plus probablement, une annonce concerne un ou plusieurs modèles, ce ou ces modèles sont rattachés à des marques d'une part et à des carburants d'autre part.
    Et encore, tout dépend de ce que vous appelez "modèle", si le modèle est "Clio" alors le carburant n'y est pas directement rattaché, il faut en ce cas décliner le modèle en variantes pour en connaitre la motorisation qui est associée au carburant

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    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 : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Concernant les relations entre les marques et les modèles, voyez par exemple ici (post #19).


    Nom : hbx360_son_mcd_b_annonces.png
Affichages : 164
Taille : 14,6 Ko
    (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.

  5. #5
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    merci à tous pour votre aide et merci à toi fsmrel pour ce topic !!!

    Je vais corriger tout ça

  6. #6
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Voilà ce que j'ai pu faire en m'inspirant du sujet et de vos avis

    Qu'en pensez vous ?


    Nom : Capture.JPG
Affichages : 155
Taille : 87,8 Ko

  7. #7
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Ok je l'ai encore amélioré ça donne ça :

    vos avis ?

    Nom : Capture2.JPG
Affichages : 169
Taille : 93,2 Ko

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    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 : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Bonjour sims8134,


    Dans le cadre de votre application, qu’est-ce qu’un professionnel ?

    Je pose cette question parce que selon votre MCD, un compte donné appartient à la fois à un professionnel et à un garage...


    Effet Dagobert : n’y aurait-il pas quelques cardinalités à l’envers ? Par exemple, selon votre MCD, une année de circulation donnée, disons 2021, appartient à un seul modèle de véhicule, les autres modèles devront se rabattre sur d’autres années...


    Quel SGBD utilisez-vous ?
    (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.

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonjour sims8134

    Avant toute chose, rédigez vos règles de gestion et identifiez les.
    Voici un exemple

    R001a : un garage peut posséder zéro à plusieurs comptes
    R001b : un compte est possédé par un et un seul garage

    R002a : un garage peut publier zéro à plusieurs annonces
    R002b : une annonce est publiée par un et un seul garage

    etc.

    Notez que pour chaque "patte" d'une association il doit y avoir au moins une règle (parfois plus en cas de contrainte d'intégrité fonctionnelle)
    Soit deux règles pour une asso binaire, trois pour une ternaire...

  10. #10
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Edit: Merci pour vos messages d'aide

    Hello, un professionnel dispose d'un compte pour ajouter supprimer et modifier des annonces.

    Voilà mon MCD
    PS: J'utiliserais PHPMyAdmin et Mysql

    C'est mieux ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Voilà une nouvelle version

  12. #12
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    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 : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Bonjour sims8134,


    Du point de vue de la conformité aux règles traditionnelles de la modélisation, votre MCD du post #11 est correct.

    Cela dit, comment savoir à quel véhicule se rattache une annonce ? Quelle est la date de celle-ci ?
    (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.

  13. #13
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Je dois rajouter une date d'ajout dans la table annonce et dans la table modele ? Ou seulement dans la table annonce ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    En formation
    Inscrit en
    Juillet 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : En formation

    Informations forums :
    Inscription : Juillet 2020
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Nouvelle version avec un formulaire de contact afin qu'un visiteur puisse montrer son intérêt pour une annonce

    Nom : mcd_anglais.JPG
Affichages : 135
Taille : 85,6 Ko

    Est ce que le fait que l'id de l'annonce dans la table image est juste ou non ?

  15. #15
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    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 : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par sims8134 Voir le message
    Je dois rajouter une date d'ajout dans la table annonce et dans la table modele ? Ou seulement dans la table annonce ?
    Dans le MCD, que la date de l’annonce figure dans l’entité-type ANNONCE, c’est logique. Quand vous évoquez l’entité-type MODELE (et non pas la "table", concept qui n’est à utiliser qu’en SQL), il ne peut s’agir que de la date de création des modèles par le constructeur, mais la connaissance de cette date est-elle nécessaire pour le bon fonctionnement de votre application ?


    Citation Envoyé par sims8134 Voir le message
    Est ce que le fait que l'id de l'annonce dans la table image est juste ou non ?
    Je vous rappelle qu’on est au niveau conceptuel, donc qu’on parle pas de tables mais d’entités-types (ou de façon équivalente de classes d’entités), et à ce niveau, pour une image donnée l’annonce est connue via l’association COMPORTER. En revanche la génération SQL faite par Looping est constituée d’instructions CREATE TABLE qui cette fois-ci — conformément à la théorie relationnelle — doivent comporter les attributs servant pour les clés étrangères (clause FOREIGN KEY) : en l’occurrence Looping aura créé dans la table IMAGE_ANNONCE un attribut id_annonce ainsi que la clé étrangère {id_annonce} référençant la clé primaire {id_annonce} de la table ANNONCE. C’est le moyen non seulement de garantir l’intégrité référentielle, mais aussi de réaliser des requêtes de jointure entre les tables. Au niveau relationnel, cela fonctionne ainsi depuis 1969 (merci Ted Codd !), et en SQL depuis 1974. C’est simple mais génial. Les systèmes pré-relationnels fonctionnaient pour leur part avec des pointeurs, mais ceci, Sahib, est une autre histoire, en tout cas ils ne purent soutenir la comparaison. Par contre, le niveau conceptuel avec ses MCD tient bon car on est un cran au-dessus dans l’abstraction, la preuve c’est que du point de vue narratif c’est toujours indispensable, et l’excellent Looping est la preuve concrète que la lecture des MCD est aisée et que la production de tables SQL (niveau dit « logique ») ne pose pas de problèmes.


    Avant d’aller plus loin, il faudrait que vous fournissiez les règles de gestion des données dont votre MCD n’est jamais que la conséquence, afin d’évacuer les doutes qui pourraient subsister quant aux entités-types et les relations qu’elles entretiennent. C’est crucial.

    En passant, l’entité-type ANNONCE a changé de nom, elle s’es anglicisée ?
    (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.

  16. #16
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonsoir,

    J'insiste et je ne suis pas le seul : inutile de s'acharner à modifier le MCD tant que les règles de gestion ne sont pas clairement établies

    Rappel des épisodes précédents :

    Citation Envoyé par escartefigue Voir le message
    Bonsoir,

    Effectivement, les cardinalités sont à revoir, certaines sont inversées, d'autres suspectes, comme par exemple le fait qu'une annonce est publiée par plusieurs garages.
    À confirmer au travers de règles de gestion.
    Citation Envoyé par escartefigue Voir le message
    Bonjour sims8134

    Avant toute chose, rédigez vos règles de gestion et identifiez les.
    Voici un exemple

    R001a : un garage peut posséder zéro à plusieurs comptes
    R001b : un compte est possédé par un et un seul garage

    R002a : un garage peut publier zéro à plusieurs annonces
    R002b : une annonce est publiée par un et un seul garage

    etc.

    Notez que pour chaque "patte" d'une association il doit y avoir au moins une règle (parfois plus en cas de contrainte d'intégrité fonctionnelle)
    Soit deux règles pour une asso binaire, trois pour une ternaire...

    Citation Envoyé par fsmrel Voir le message
    Avant d’aller plus loin, il faudrait que vous fournissiez les règles de gestion des données dont votre MCD n’est jamais que la conséquence, afin d’évacuer les doutes qui pourraient subsister quant aux entités-types et les relations qu’elles entretiennent. C’est crucial.
    En effet : un MCD n'est bon que s'il est conforme aux règles de gestion, en l'absence, seule une note technique peut être attribuée. C'est d'un intérêt tout relatif puisque la mise en conformité vis à vis des règles conduira à en revoir la structure...

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/01/2006, 19h47
  2. Quel EDI pour une appli commerciale?
    Par altadeos dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 01/12/2005, 19h34
  3. Transaction autonomes pour une appli web en .NET
    Par lex0072 dans le forum Oracle
    Réponses: 11
    Dernier message: 08/07/2005, 16h36
  4. Protocole spécifique pour une appli client/serveur
    Par SteelBox dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2004, 12h20
  5. [débutant]ou mettre un fichier java pour une appli jsp?
    Par zozolh2 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/05/2004, 16h20

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