Énoncé de l'exercice
2. Crée une table categorie avec ces colonnes :
- id_categorie : entier, clé primaire, auto-incrémentée
- nom : texte (max 100), obligatoire, unique
- description : texte long, facultatif
- date_creation : DATETIME, valeur par défaut date et heure actuelles
3. Crée une table produit avec ces colonnes :
- id_produit : entier, clé primaire, auto-incrémentée
- nom : texte (max 150), obligatoire
- prix : décimal (10,2), obligatoire, doit être strictement positif
- quantite_stock : entier, valeur par défaut 0, ne peut pas être négative
- date_ajout : DATETIME, valeur par défaut date et heure actuelles
- id_categorie : entier, clé étrangère vers categorie(id_categorie), obligatoire
Solution proposée
-- Création de la base de données
CREATE DATABASE IF NOT EXISTS boutique;
-- Utilisation de la base
USE boutique;
-- Table catégorie
CREATE TABLE categorie (
id_categorie INT AUTO_INCREMENT, -- Identifiant unique auto-incrémenté
nom VARCHAR(100) NOT NULL UNIQUE, -- Nom obligatoire, unique
description TEXT, -- Description facultative
date_creation DATETIME DEFAULT CURRENT_TIMESTAMP, -- Date de création, valeur par défaut la date et l'heure actuelles
PRIMARY KEY (id_categorie), -- Clé primaire
);
-- Table produit
CREATE TABLE produit (
id_produit INT AUTO_INCREMENT, -- Identifiant unique auto-incrémenté
nom VARCHAR(150) NOT NULL, -- Nom obligatoire
prix DECIMAL(10,2) NOT NULL CHECK (prix > 0), -- Prix obligatoire, strictement positif
quantite_stock INT DEFAULT 0 CHECK (quantite_stock >= 0), -- Quantité en stock, >= 0 par défaut 0
date_ajout DATETIME DEFAULT CURRENT_TIMESTAMP, -- Date d’ajout, valeur par défaut date courante
id_categorie INT NOT NULL, -- Référence obligatoire à une catégorie
PRIMARY KEY (id_produit), -- Clé primaire
CONSTRAINT fk_categorie FOREIGN KEY (id_categorie) REFERENCES categorie(id_categorie) ON DELETE RESTRICT ON UPDATE CASCADE,
);