Aller au contenu

UGA - MIASHS - S7 - BDD - Pierre Blarre

Exercices

Icône Présentation
1 / 1

Après avoir été guidé dans la mise en place de ce projet, il est important de mettre en pratique les notions abordées pour bien les assimiler.

Si vous souhaitez repartir d’un projet vierge, vous pouvez cloner le dépôt suivant : https://github.com/erralb-uga/boutique

Modification de la boutique

On souhaite maintenant effectuer les modifications suivantes sur la base de données de la boutique en ligne :

1. Changement de l’adresse des clients

On ne souhaite plus stocker l’adresse des clients dans un seul champ. On souhaite découper l’adresse en plusieurs champs : rue, code postal, ville, pays.

  1. Passez en revue les différents fichiers concernés par cette modification.
  2. Préparer une liste des choses à faire
  3. Effectuer les modifications nécessaires en testant au fur et à mesure
  4. Vous devez pouvoir relancer le fichier boutique-generate.php sans erreur et avec les nouvelles données
  5. Effectuez un commit et un push de vos modifications sur votre dépôt

2. Ajout de la facturation

On souhaite maintenant créer une nouvelle fonctionnalité de facturation pour les commandes. On souhaite stocker les informations suivantes pour chaque facture : id, id_commande, id_client, montant, date, statut.

  1. Passez en revue les différents fichiers concernés par cette modification.
  2. Préparer une liste des choses à faire
  3. Effectuer les modifications nécessaires en testant au fur et à mesure
  4. Vous devez pouvoir relancer le fichier boutique-generate.php sans erreur et avec les nouvelles données
  5. Effectuez un commit et un push de vos modifications sur votre dépôt

PostgreSQL

L’avantage d’utiliser un langage comme DBML (Database Markup Language) est qu’il est possible de générer des fichiers SQL pour différents SGBD.

  1. Si ce n’est pas déjà fait, installez PostgreSQL sur votre machine
  2. Modifiez le fichiers boutique-generate.php pour :
    1. Accepter un argument --sgbd pour choisir le SGBD
    2. Générer un fichier SQL en fonction du SGBD choisi

Aide pour PostgreSQL

Vous pouvez créer une connection à PostgreSQL avec l’extension VSCode Database Client, comme pour MySQL.

Cela dit, les commandes suivantes pourraient vous être utiles.

Dans un terminal, connectez-vous à votre SGBD PostgreSQL :

Fenêtre de terminal
psql -U postgres

Créez une base de données :

CREATE DATABASE boutique;

Sélectionnez la base de données :

\c boutique

Importez le fichier SQL :

Fenêtre de terminal
psql -U postgres -d boutique -f boutique-schema.sql

Pour aller plus loin

Voici quelques idées supplémentaires pour aller plus loin :

  1. Ajouter la gestion des stocks pour les produits
  2. Ajouter une contrainte pour empêcher la création d’une ligne de détail d’une commande si le stock est insiuffisant
  3. Ajouter une procédure stockée pour mettre à jour le stock d’un produit
  4. Ajouter un trigger pour générer une facture et mettre son montant à jour après chaque ajout d’une ligne de détail d’une commande
  5. Imaginez des requêtes SQL pour obtenir des informations sur les ventes, les clients, les produits, etc.
  6. Développer un script PHP qui exécute ves requêtes et compare les résultats avec les résultats attendus
  7. etc.