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.
- Passez en revue les différents fichiers concernés par cette modification.
- Préparer une liste des choses à faire
- Effectuer les modifications nécessaires en testant au fur et à mesure
- Vous devez pouvoir relancer le fichier
boutique-generate.php
sans erreur et avec les nouvelles données - 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.
- Passez en revue les différents fichiers concernés par cette modification.
- Préparer une liste des choses à faire
- Effectuer les modifications nécessaires en testant au fur et à mesure
- Vous devez pouvoir relancer le fichier
boutique-generate.php
sans erreur et avec les nouvelles données - 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.
- Si ce n’est pas déjà fait, installez PostgreSQL sur votre machine
- Modifiez le fichiers
boutique-generate.php
pour :- Accepter un argument
--sgbd
pour choisir le SGBD - Générer un fichier SQL en fonction du SGBD choisi
- Accepter un argument
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 :
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 :
psql -U postgres -d boutique -f boutique-schema.sql
Pour aller plus loin
Voici quelques idées supplémentaires pour aller plus loin :
- Ajouter la gestion des stocks pour les produits
- Ajouter une contrainte pour empêcher la création d’une ligne de détail d’une commande si le stock est insiuffisant
- Ajouter une procédure stockée pour mettre à jour le stock d’un produit
- 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
- Imaginez des requêtes SQL pour obtenir des informations sur les ventes, les clients, les produits, etc.
- Développer un script PHP qui exécute ves requêtes et compare les résultats avec les résultats attendus
- etc.