Concevoir une base de données commence par la réalisation du modèle relationnel. Il existe beaucoup de logiciels permettant de créer des MCD, découvrons dbdiagram.io, un outil Web.
dbdiagram.io est un outil gratuit permettant d'élaborer des diagrammes de base de données en ligne très rapidement et simplement. L'objectif principal de l'outil est que les utilisateurs (pas forcément des développeurs) puissent comprendre simplement la structure d'une base de données.
Le principe est simple : à l'aide du langage DSL, décrivez les différentes tables et leurs champs dans la barre de gauche et l'outil s'occupe de générer le graphique. Voici un exemple concret de création d'une table (simple) d'utilisateurs :
Table users {
id int PK
full_name varchar
email varchar
gender varchar
date_of_birth varchar
status tinyint
created_at varchar
country_code int
}
Comme vous pouvez le voir, les différents champs sont listés les uns à la suite des autres, agrémentés de leur type (entier, chaîne de caractères, date, ...) et d'autres paramètres (clé primaire, notamment). Dommage qu'il ne soit pas possible de spécifier un nombre de caractères maximum ou de gérer les valeurs par défaut.
Une auto-complétion est de la partie, facilitant l'élaboration des tables et relations.
dbdiagram.io gère également les relations entre les tables (clés étrangères). Pour créer une relation, voici la syntaxe :
Ref: orders.user_id > users.id
Ici, une commande est liée à un utilisateur. Une relation many-to-one est donc créée. Voici les types de relation disponibles :
< : One-to-many
> : Many-to-one
- : One-to-one
Vous pouvez également gérer les relations en glissant-déposant directement un champ sur un autre, d'une autre table.
dbdiagram.io permet de sauvegarder son travail, en s'étant au préalable connecté avec un compte Google. De même, vous pouvez obtenir un lien de partage de votre schéma.
Plusieurs exports sont disponibles : schéma au format PDF ou PNG ; code MySQL ou PostreSQL.
Concernant l'export MySQL, je l'ai trouvé un peu trop simpliste. Par exemple, il n'y a pas de DROP TABLE IF EXISTS
. Espérons que les développeurs ajoutent quelques fonctionnalités à cet excellent outil !