Creation d'une base de donnée

Résolu/Fermé
ethanlebg3 Messages postés 5 Date d'inscription dimanche 10 mai 2020 Statut Membre Dernière intervention 10 mai 2020 - Modifié le 10 mai 2020 à 03:59
ethanlebg3 Messages postés 5 Date d'inscription dimanche 10 mai 2020 Statut Membre Dernière intervention 10 mai 2020 - 10 mai 2020 à 18:48
Bonjour a tous, j'espère que vous allez bien et que le confinement se passe bien.
Suite a un projet, on nous as demandé de créer une base de données de notre choix, (j'ai choisi : livraisons de plats cuisinées). Dans ce projet on nous demande, au minimum d'insérer :
● Cinq types d’entités
● une association ternaire
● une association ayant un attribut
● une spécialisation
● un type d’entité faible
● une association avec au moins une cardinalité 1:1 (autre que l’association reliant l’entité faible à l’entité forte)
● une association avec au moins une cardinalité 0:1
● une association avec toutes les cardinalités 0:N ou 1:N

Du coup, je me suis lancé et après avoir fais pas mal de modifications et de changement, en dessous on peux voir mon schéma entité-association ainsi que mon texte explicative.

Cependant, c'est la première fois que je crée ma propre base de donnée et je suis pas du tout sur par rapport a mes cardinalités ainsi que la cohérence avec le monde réel. C'est pour cela que j'aimerais avoir vos point de vues par rapport a mon schéma, qu'en pensez vous ?.
Pour ma part, je doute principalement sur la cardinalité de mon association ternaire en rapport avec sa cohérence, j'ai du mal a l'interpréter en Français avec l'entité période. est ce bien une cardinalité 1:1 ?.

Aussi, avec l'association "se déplace en", sachant qu'un restaurant a plusieurs livreurs et plusieurs motos, le livreur ne peux se déplacer que avec une seul moto voir aucune si le lieu de livraison est près mais il peux conduire différentes motos a des moments différents et la moto ne peux être conduite que par 1 personne mais plusieurs personnes peuvent conduire la moto aussi a des moments différents. Cela me met énormément le doute par rapport aux cardinalités, j'essaye principalement de trouver pour cette association une cardinalité 0:1 mais je suis pas sur de comment m'y prendre.


C'est la première fois que je postule sur ce forum, excusez moi au préalable si j'ai fais quelque chose de mal.

En tout cas, je vous souhaite un bon confinement, en attendant des retours de votre part.
Merci de votre compréhension.
A voir également:

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 10 mai 2020 à 11:54
Bonjour,

Pour commencer, je ne vois pas le lien entre les plats et les commandes ...
Ensuite, le livreur ne livre pas des plats... mais des commandes ( qui contiennent des plats bien entendu).

En ce qui concerne les moyens de locomotion de tes livreurs.. je ne suis pas certain que ce genre d'info est réellement stockée en bdd dans la vraie vie...
Sans parler du fait qu'il peut prendre également une voiture, un vélo, un scooter ....
Bref, il utilise le moyen le plus adapté à son besoin à un instant T ... et peut en changer autant de fois qu'il y a de commandes... ou pas. On ne s'amusera pas à l'enregistrer en bdd à chaque déplacement.

En données importantes à stocker, il y a également les adresses (que je ne vois pas ici).
A minima une adresse de facturation (qui peut aussi être l'adresse de livraison) et/ou des adresses de livraisons différentes ( aujourd'hui je me fais livrer chez moi... demain à mon travail.. un autre jour ça sera chez des amis...)

Il manque aussi le statut de la commande .... En préparation, en cours de livraison, livrée, Payée ou non ...

Tu peux aussi ajouter les moyens de paiements...

Je vois également que tu parles du prix des plats... mais et si il y a des menus ?

Et pour ce qui est de l'association ternaire, je verrai bien la Livraison à un créneau horaire (date/heure) à une adresse (de livraison pour une commande donnée).



1
ethanlebg3 Messages postés 5 Date d'inscription dimanche 10 mai 2020 Statut Membre Dernière intervention 10 mai 2020
Modifié le 10 mai 2020 à 12:51
Merci beaucoup pour ta réponse, je vais de ce pas modifier ma BBD afin de l’adapter en prenant en compte tes remarques. Je reviens vers toi au plus vites. Merci encore.
0
ethanlebg3 Messages postés 5 Date d'inscription dimanche 10 mai 2020 Statut Membre Dernière intervention 10 mai 2020
10 mai 2020 à 12:49


re,

j'ai pris en compte tes remarques et je pense que sa devrait donner une base de donnée comme celle ci.

j'ai quand même un petit doute au niveau des cardinalité de l'association ternaire.
Sinon, comme je suis dans l'obligation d'avoir une association de cardinalité 0:1, je ne sais pas si c'est cohérent de rajouter une association que les plats sont présent au maximum dans un seul menu ce qui ferai 0:1 de plat et 1:n de menu.
Aussi, vu que c'est une livraison de plats cuisinés, l'adresse de livraison et de facturation sont les mêmes, a priori.
J'ai aussi pensé au fait que le client pouvais utiliser au maximum un bon de réduction, ma cardinalité 0:1 est aussi présente ici.

Merci de votre compréhension,
Bien cordialement,


Ethan.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > ethanlebg3 Messages postés 5 Date d'inscription dimanche 10 mai 2020 Statut Membre Dernière intervention 10 mai 2020
10 mai 2020 à 18:13
merci pour ton MP. :-)

Encore quelques remarques sur ton modèle.

- Le moyen de paiement est rattaché à la commande, pas au client. ( un jour je paye en CB, un autre en tickets restaurants, un autre en liquide.... )
- Idem pour l'adresse de livraison .. un jour je me fais livrer chez moi, un autre sur mon lieu de travail... ( et c'est pour ça que l'adresse de facturation n'est pas nécessairement identique à celle de livraison )
Donc, pour moi, l'adresse de livraison est également liée à la commande.. pas au client à proprement parlé.
- Comme sur ton premier schéma, les ingrédients, je pense, devraient être une entité à part... et pas juste une "propriété" des plats.
- Je ne vois pas non plus les boissons.. qui, à mon avis, ne sont pas à classer dans les "plats"

Après, vu que c'est juste pour tes cours, je ne pense pas qu'il faille trop complexifier.
Ce que tu proposes actuellement me semble déjà pas trop mal. (mais je ne suis pas ton prof :-) )

Bonne soirée.
0
ethanlebg3 Messages postés 5 Date d'inscription dimanche 10 mai 2020 Statut Membre Dernière intervention 10 mai 2020 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
10 mai 2020 à 18:30
Merci beaucoup encore et encore pour tes interventions, ca me fais vraiment plaisir qu'il y est des gens comme toi.
Je trouve tes remarques très constructives et très instructives. Donc, merci aussi pour tes remarques.

Cependant j'ai quelques doutes.
- Si je met autant d'attributs a commande, commande sera t-elle toujours une entité faible par rapport a client ?.
- est ce que la cardinalité 1:1 au niveau de période est-elle bonne ?.

Merci et bonne soirée.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > ethanlebg3 Messages postés 5 Date d'inscription dimanche 10 mai 2020 Statut Membre Dernière intervention 10 mai 2020
Modifié le 10 mai 2020 à 18:44
En fait, pour les adresses, je me suis mal expliqué je pense.
Quand tu regardes le fonctionnement d'un CMS e-comerce (comme Magento par exemple) on voit que les Adresses sont gérées dans une table à part.
Les adresses sont attachées à un client ( il peut avoir un carnet d'adresses ( 1->n) ) et à des commandes ( 1 commande a 1 adresse de facturation et 1 adresse de livraison ( la même adresse pouvant être utilisée ))

Pour ce qui est de l'entité faible, l’énoncé me laisse penser qu'il doit y en avoir une ( au moins) .. mais pas forcément toutes. Mais comme je ne suis pas ton prof, difficile de savoir ce qu'il attend de vous.

Pour la période, oui, je pense que c'est bon.
Une commande est livrée à une période. ( donc 1-> 1)
0