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 la construction d'une maison dont vous avez besoin pour 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é.
Syntaxe de CREATE TABLE
Pour commencer, ouvrez votre favori éditeur de texte. 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 de base:
CREATE TABLE utilisateurs (
id INT NON NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR (100) NOT NULL,
email VARCHAR (100) NOT NULL
);
Comme vous pouvez le voir, cela créera une table de base de données nommée utilisateurs qui se compose de quatre colonnes. Cela devrait être une instruction SQL assez simple commençant par CRÉER UNE 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.
Utiliser les types de colonnes corrects
Comme indiqué ci-dessus, les colonnes qui composeront le tableau sont séparées par des virgules. Chaque définition de colonne comprend les trois mêmes parties:
TYPE DE COL_NAME [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 colonnes les plus couramment utilisés disponibles:
À 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.
Définir les options de colonne
Lors de la définition des colonnes, vous pouvez également spécifier diverses options. Vous trouverez ci-dessous un autre exemple de CRÉER UNE TABLE déclaration:
CREATE TABLE utilisateurs (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom d'utilisateur VARCHAR (100) NOT NULL UNIQUE,
status ENUM ('active', 'inactive') NOT NULL DEFAULT 'active',
balance DECIMAL (8,2) NON NULL DEFAULT 0,
date_of_birth 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 panne, voici ce qui se passe dans la déclaration ci-dessus:
- Vous devez toujours utiliser NOT NULL sur toutes les colonnes possibles pour améliorer la vitesse et les performances de la table. Cela spécifie simplement que la colonne ne peut pas être laissée vide / nulle lorsqu'une ligne est insérée.
- Essayez toujours de garder la taille de la colonne aussi petite que possible, car cela contribue à améliorer la vitesse et les performances.
- Le identifiant La colonne est un entier, est également la clé primaire de la table, ce qui signifie qu'elle est unique et incrémentée de un à chaque fois qu'un enregistrement est inséré. Cela doit généralement être utilisé sur toutes les tables que vous créez afin que vous puissiez facilement référencer une seule ligne dans la table.
- Le statut La colonne est un ENUM et doit avoir la valeur "active" ou "inactive". Si aucune valeur n'est spécifiée, une nouvelle ligne commencera avec le statut «actif».
- Le équilibre La colonne commence à 0 pour chaque nouvelle ligne et est un montant mis en forme avec deux décimales.
- Le date de naissance La colonne est simplement une DATE mais autorise également une valeur nulle car la date de naissance peut ne pas être connue lors de la création.
- Enfin, le créé à column est un TIMESTAMP et par défaut à l'heure actuelle à laquelle la ligne a été insérée.
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, de sorte que lorsque la ligne parent est supprimée, les lignes enfants nécessaires sont également supprimées automatiquement.
Voici un exemple:
CREATE TABLE utilisateurs (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom d'utilisateur VARCHAR (100) NOT NULL UNIQUE,
full_name VARCHAR (100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) moteur = InnoDB;
CRÉER des commandes TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
montant DECIMAL (8,2) NON NULL,
nom_produit VARCHAR (200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) moteur = InnoDB;
Vous remarquerez la clause FOREIGN KEY en dernière ligne. Cette ligne indique simplement que cette table contient des lignes enfants qui sont liées par le identifiant d'utilisateur colonne à leur ligne parente, qui est le identifiant colonne de la utilisateurs table. Cela signifie que chaque fois qu'une ligne est supprimée du utilisateurs table, mySQL supprimera automatiquement toutes les lignes correspondantes du ordres table pour garantir l'intégrité structurelle de votre base de données.
Notez également le moteur = InnoDB à la fin de la déclaration ci-dessus. Bien qu'InnoDB soit maintenant le type de table mySQL par défaut, ce n'était pas toujours le cas, donc cela devrait être ajouté juste pour rester sûr, car la cascade ne fonctionne qu'avec les tables InnoDB.
Concevez en toute confiance
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 fournissent à 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.
Apprenez à utiliser les jointures SQL pour rationaliser les requêtes, gagner du temps et vous faire sentir comme un utilisateur avancé de SQL.
- Non spécifié
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!
Un pas de plus…!
Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.