Bonjour à tous, Je suis actuellement en train de concevoir la base de données pour un projet de site web/blog, et j'aimerais avoir vos avis sur mon Modèle Conceptuel de Données (MCD)
![]()
Bonjour à tous, Je suis actuellement en train de concevoir la base de données pour un projet de site web/blog, et j'aimerais avoir vos avis sur mon Modèle Conceptuel de Données (MCD)
![]()
Bonjour et bienvenue dans le forum modélisation
Le MCD est une présentation schématique de règles de gestion selon un formalisme particulier.
Or vous n'avez formulé aucune des règles de gestion.
Voir dans ce fil de discussion, réponse n°8, comment formaliser les règles de gestion.
De plus, le formalisme de votre schéma est inhabituel, quel est votre outil de modélisation ?
Si vous n'avez pas de logiciel adapté, je vous recommande l'excellent Looping que vous pouvez télécharger gratuitement ICI.
Avec un logiciel tel que Looping, vous n'auriez pas commis l'erreur de positionner des clefs étrangères dans les types d'entité. En effet, au stade conceptuel, la notion de clef n'existe pas encore, donc évidement pas de clefs étrangères à ce stade.
C'est dans le modèle tabulaire (MLD et MPD) que les identifiants deviennent clefs et éventuellement clefs étrangères.
J'ai utilisé un outil en ligne pour l'UML https://lucid.app. En classe, nous l'écrivons sur papier, donc merci pour la recommandation. J'essaierai d'utiliser looping et merci d'avoir signalé l'erreur de clé étrangère. Je vais corriger le diagramme et le republier en utilisant un logiciel propre. Mais pensez-vous que c'est logique jusqu'à présent ? C'est la première fois que je crée une base de données à partir de zéro.
Bonjour,
Comme dit escartefigue, on ne peut que douter de la pertinence de votre diagramme, lequel n’est manifestement pas un MCD.
Dans un MCD, un carré symbolise un type d’entité et non pas plusieurs, d’où la nécessité d’utiliser des noms au singulier : COMMENTAIRE est un nom pertinent, COMMENTS ne l’est pas (et tant qu’à faire évitez le sabir résultant du mélange du français et de l’anglais).
Avez-vous compris la signification des cardinalités ? Par exemple, il apparaît que le même commentaire peut avoir été effectué par plusieurs utilisateurs et qu’un commentaire peut exister sans que personne ne soit concerné (cardinalité minimale 0).
Etc.
N.B. Looping permet aussi de faire des diagrammes UML.
(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.
À ce propos il faut noter que selon la symbolique UML, les cardinalités sont inversées par rapport à celles en usage sous Merise.
Attention à bien appliquer les cardinalités Merisiennes, par exemple, avec le modèle E/A suivant :
[ENTITE1] 0,n --- (asso 1) --- 1,1 [ENTITE 2]
Une occurrence d'Entité1 peut avoir zéro à plusieurs associations (asso 1) avec des occurrences d'Entité2, alors que chaque occurrence d'Entité2 a obligatoirement une association asso 1) avec une seule occurrence d'Entité1
est-ce mieux ?
j'ai utilisé l'anglais car ma base de données sera en anglais éventuellement
![]()
Bonjour,
Grâce à Looping, le formalisme est beaucoup mieux
Autres points concernant la forme :
- l'utilisation de l'anglais est judicieuse dans un contexte international, mais en ce cas, il faut aller jusqu'au bout de la démarche ;
Par exemple, les verbes des associations doivent aussi être en anglais, ainsi que certains attributs tels que "libellé" (wording en anglais)- les types d'entités se nomment au singulier : "role" (sans accent en anglais) plutôt que "rôles", "comment" plutôt que "comments" ;
- préfixer les noms des attributs par le nom du type d'entité est judicieux, ça garantit l'unicité et évite de percuter avec des noms réservés SQL lors de la dérivation du MCD (si toutefois on conserve les noms logiques comme noms physiques).
Mais il est préférable de le faire pour tous les attributs. Par exemple first_name et last_name ne sont pas préfixés.
Pour ma part, j'associe un préfixe court (de deux ou trois caractères) à chaque type d'entité et chaque association (par exemple USRpour l'entité-type USER) et j'utilise ce préfixe pour nommer les entités, les associations et leurs attributs
Exemple USR_USER(USR_ident, USR_first_name, USR_last_name....)
Cette méthode garantit l'unicité, évite la percussion avec des mots réservés SQL, mais aussi, elle facilite les études d'impact ;- certaines associations ont un verbe à l'infinitif pour nom, d'autres un verbe conjugué (publie) ou un substantif (poste). L'usage est le verbe à l'infinitif, comme vous optez pour l'anglais, harmonisez donc toutes les assos pour utiliser un infinitif en anglais (avec préfixe si vous utilisez ma méthode de nommage).
Sur le fond, il manque toujours les règles de gestion, je vous ai fourni un lien vers un fil de discussion pour vous guider sur la façon de les formuler.
Partager