FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Guide du débutant : Créer des schémas MySQL performants et bien structurés

Lors du développement d'un projet logiciel, un schéma de base de données bien conçu est fondamental. C'est comme les fondations d'une maison : une structure solide garantit la qualité et la durabilité de l'ensemble.

Plus accessible qu'il n'y paraît, découvrez les étapes essentielles pour concevoir un schéma MySQL optimal, performant et fiable.

Syntaxe CREATE TABLE

Ouvrez votre éditeur de texte préféré. Un schéma de base de données est un fichier texte brut composé de tables, elles-mêmes formées de colonnes. La commande CREATE TABLE crée une table. Exemple basique :

CREATE TABLE utilisateurs (
  id INT NOT NULL,
  is_active TINYINT NOT NULL,
  nom_complet VARCHAR(100) NOT NULL,
  email VARCHAR(100) NOT NULL
);

Cette instruction crée la table utilisateurs avec quatre colonnes. Elle commence par CREATE TABLE, suivi du nom de la table, puis des colonnes entre parenthèses, séparées par des virgules.

Choisir les bons types de colonnes

Chaque colonne suit le format : COL_NAME TYPE [OPTIONS].

COL_NAME   TYPE   [OPTIONS]

Les types les plus courants en MySQL incluent :

  • INT : Entiers (ex. : ID).
  • TINYINT : Petits entiers (0/1 pour booléens).
  • VARCHAR(n) : Chaînes de caractères variables.
  • DECIMAL(p,s) : Nombres décimaux précis.
  • DATETIME : Dates et heures.
  • TIMESTAMP : Horodatages automatiques.
  • ENUM('val1','val2') : Valeurs prédéfinies.

Ces types suffisent pour la plupart des schémas MySQL robustes.

Options de colonnes

Exemple avancé :

CREATE TABLE utilisateurs (
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  nom_utilisateur VARCHAR(100) NOT NULL UNIQUE,
  statut ENUM('actif','inactif') NOT NULL DEFAULT 'actif',
  solde DECIMAL(8,2) NOT NULL DEFAULT 0,
  date_naissance DATETIME,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

Détails :

  • NOT NULL : Obligatoire pour booster les performances.
  • Taille minimale des colonnes pour optimiser la vitesse.
  • id : Clé primaire auto-incrémentée, unique.
  • statut : ENUM avec défaut 'actif'.
  • solde : Décimal à 2 chiffres après la virgule, défaut 0.
  • date_naissance : Nullable.
  • created_at : Horodatage automatique.

Ce modèle est un exemple idéal de table structurée.

MySQL excelle dans les relations via contraintes de clés étrangères et cascades.

CREATE TABLE utilisateurs (
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  nom_utilisateur VARCHAR(100) NOT NULL UNIQUE,
  nom_complet VARCHAR(100) NOT NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

CREATE TABLE commandes (
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  user_id INT NOT NULL,
  montant DECIMAL(8,2) NOT NULL,
  nom_produit VARCHAR(200) NOT NULL,
  FOREIGN KEY (user_id) REFERENCES utilisateurs(id) ON DELETE CASCADE
) ENGINE=InnoDB;

La clause FOREIGN KEY lie user_id à id des utilisateurs. Suppression d'un utilisateur cascade sur ses commandes, préservant l'intégrité. Utilisez toujours ENGINE=InnoDB pour les cascades.

Concevez en confiance

Armé de ces principes, créez des schémas MySQL performants et intègres. Maîtrisez ensuite les commandes SQL essentielles pour exploiter votre base.


[]