Lors du développement d'un projet logiciel, l'un des aspects les plus importants, fondamentaux et intrinsèques est un schéma de base de données correctement structuré. C'est l'équivalent de lorsque vous construisez une maison, vous devez vous assurer que les fondations sont correctement posées, sinon les chances de construire une maison de qualité sont considérablement réduites.
Étonnamment plus facile qu'on ne le pense, apprenons les différentes facettes utilisées pour écrire un schéma de base de données bien architecturé.
Pour commencer, ouvrez votre éditeur de texte préféré. La création d'un schéma de base de données ne nécessite rien de plus qu'un fichier texte brut. Une base de données se compose de plusieurs tables, chacune composée de colonnes, et la syntaxe CREATE TABLE est utilisée pour créer une seule table. Voici un exemple basique :
utilisateurs de CREATE TABLE (
id INT NON NULL,
is_active TINY INT NOT NULL,
nom_complet VAR CHAR(100) NON NULL,
email VARCHAR(100) NON NULL
);
Comme vous pouvez le voir, cela créera une table de base de données nommée users qui se compose de quatre colonnes. Cela devrait être une instruction SQL assez simple commençant par CREATE TABLE , suivi du nom des tables de la base de données, puis entre parenthèses les colonnes de la table séparées par une virgule.
Comme indiqué ci-dessus, les colonnes qui composent le tableau sont séparées par des virgules. Chaque définition de colonne est composée des trois mêmes parties :
COL_NAME TYPE [OPTIONS]
Le nom de la colonne, suivi du type de colonne, puis de tout paramètre facultatif. Nous aborderons les paramètres facultatifs plus tard, mais en nous concentrant sur le type de colonne, ci-dessous répertorie les types de colonne disponibles les plus couramment utilisés :
À toutes fins utiles, les types de colonnes ci-dessus sont tout ce dont vous avez besoin pour écrire des schémas de base de données mySQL bien construits.
Lors de la définition des colonnes, vous pouvez également spécifier diverses options. Vous trouverez ci-dessous un autre exemple de CREATE TABLE déclaration :
utilisateurs de CREATE TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom d'utilisateur VARCHAR(100) NOT NULL UNIQUE,
status ENUM('actif','inactif') NOT NULL DEFAULT 'actif',
solde DECIMAL(8,2) NON NULL PAR DEFAUT 0,
date_de_naissance DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
Ce qui précède peut sembler un peu intimidant, mais ne vous inquiétez pas, c'est assez simple. En détail, voici ce qui se passe dans la déclaration ci-dessus :
Ce qui précède est un exemple de table de base de données bien structurée et devrait être utilisé comme exemple à l'avenir.
L'un des plus grands avantages de l'utilisation de bases de données relationnelles telles que mySQL est son excellent support pour les contraintes de clé étrangère et la cascade. C'est lorsque vous liez deux tables ensemble par une colonne, formant une relation parent-enfant, donc lorsque la ligne parent est supprimée, les lignes enfants nécessaires sont également automatiquement supprimées.
Voici un exemple :
utilisateurs de CREATE TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom d'utilisateur VARCHAR(100) NOT NULL UNIQUE,
nom_complet VARCHAR(100) NON NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) moteur=InnoDB ;
Commandes CRÉER TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ID utilisateur INT NOT NULL,
montant DECIMAL(8,2) NON NULL,
nom_produit VARCHAR(200) NON NULL,
FOREIGN KEY (userid) RÉFÉRENCES utilisateurs (id) ON DELETE CASCADE
) moteur=InnoDB ;
Vous remarquerez la clause FOREIGN KEY comme dernière ligne. Cette ligne indique simplement que cette table contient des lignes enfants liées par l'ID utilisateur colonne à leur ligne parente, qui est l'id colonne des utilisateurs table. Cela signifie qu'à chaque fois qu'une ligne est supprimée des utilisateurs table, mySQL supprimera automatiquement toutes les lignes correspondantes des commandes table aidant à assurer l'intégrité structurelle de votre base de données.
Notez également le engine=InnoDB à la fin de la déclaration ci-dessus. Bien qu'InnoDB soit maintenant le type de table mySQL par défaut, il ne l'a pas toujours été, donc cela devrait être ajouté juste pour rester du bon côté, car la cascade ne fonctionne qu'avec les tables InnoDB.
Vous êtes maintenant sur la bonne voie pour concevoir des schémas de base de données mySQL solides et bien structurés. En utilisant les connaissances ci-dessus, vous pouvez maintenant écrire des schémas bien organisés qui offrent à la fois des performances et une intégrité structurelle.
Une fois votre schéma en place, assurez-vous de savoir comment l'utiliser avec ces commandes SQL essentielles.