sio2:exercices_d_applications

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sio2:exercices_d_applications [2025/03/17 10:21] dthevenotsio2:exercices_d_applications [2025/03/17 19:09] (Version actuelle) – [Quelle solution possible ?] dthevenot
Ligne 52: Ligne 52:
  
 <code> <code>
--- Table des produits 
 CREATE TABLE produit ( CREATE TABLE produit (
     idProduit INT AUTO_INCREMENT PRIMARY KEY,     idProduit INT AUTO_INCREMENT PRIMARY KEY,
Ligne 58: Ligne 57:
     prixHt DECIMAL(10, 2),     -- Prix hors taxe     prixHt DECIMAL(10, 2),     -- Prix hors taxe
     tauxTva DECIMAL(5, 2),     -- Taux de TVA en pourcentage     tauxTva DECIMAL(5, 2),     -- Taux de TVA en pourcentage
-    typeProduit ENUM('alimentaire', 'electromenager') NOT NULL,  -- Type de produit +    typeProduit ENUM('alimentaire', 'electromenager') NOT NULL CHECK (
-    dateLimiteConsommation DATE,        -- Date limite pour produits alimentaires +
-    classeEnergetique VARCHAR(5),       -- Classe énergétique pour électroménager +
-    CHECK (+
         (typeProduit = 'alimentaire' AND dateLimiteConsommation IS NOT NULL AND classeEnergetique IS NULL) OR          (typeProduit = 'alimentaire' AND dateLimiteConsommation IS NOT NULL AND classeEnergetique IS NULL) OR 
         (typeProduit = 'electromenager' AND classeEnergetique IS NOT NULL AND dateLimiteConsommation IS NULL)         (typeProduit = 'electromenager' AND classeEnergetique IS NOT NULL AND dateLimiteConsommation IS NULL)
-    )                                   -- Vérification pour garantir la cohérence des types +    ),  -- Type de produit 
-);</code>+    dateLimiteConsommation DATE,        -- Date limite pour produits alimentaires 
 +    classeEnergetique VARCHAR(5    -- Classe énergétique pour électroménager 
 +            ; 
 +</code>
 <badge>A vous de jouer</badge> <badge>A vous de jouer</badge>
   - réimporter le script de création de la bd de gestion des commandes en changeant le nom de la base de données(gestionCommandeExo2) et changer la table produit pour la remplacer avec celle ci-dessus   - réimporter le script de création de la bd de gestion des commandes en changeant le nom de la base de données(gestionCommandeExo2) et changer la table produit pour la remplacer avec celle ci-dessus
Ligne 91: Ligne 90:
 ====== 3) Vérifier une contrainte d’associations  ====== ====== 3) Vérifier une contrainte d’associations  ======
 =====  Trigger pour vérifier une contrainte d'inclusion ===== =====  Trigger pour vérifier une contrainte d'inclusion =====
-On ajoute à notre gestion commerciale la gestion des livraisons des commandes : un produit ne doit pouvoir être livré que si il a été commandé et sa quantité livrée ne doit pas dépasser la quantité commandée bien sûr. On simplifie le cas en autorisant les livraisons des produits en une seule fois.+On ajoute à notre gestion commerciale la gestion des livraisons des commandes : un produit ne doit pouvoir être livré que si il a été commandé et sa quantité livrée ne doit pas dépasser la quantité commandée bien sûr. On simplifie le cas en définissant qu'une livraison ne concerne qu'une seule commande à la fois et un produit est livré en une seule fois.
  
 ===== Quels problèmes ? ===== ===== Quels problèmes ? =====
-  * Rien ne nous assure que les livraisons portent sur des produits commandés ;  +  * Rien ne nous assure que les livraisons portent sur les produits commandés correspondant ;  
-  * Rien ne nous assure que les quantités livrées ne soient pas supérieures à celles commandées. +  * Rien ne nous assure que les quantités livrées ne soient pas supérieures à celles commandées(si la quantité est inférieure il y aura un avoir non géré ici donc la quantité livrée inférieure ne pose pas de problème ici)
    
 ===== Quelle solution possible ? ===== ===== Quelle solution possible ? =====
    
   - A l’insertion comme à la modification d’une livraison, on vérifie à la livraison que le produit livré figure bien dans la commande qui concerne la livraison;    - A l’insertion comme à la modification d’une livraison, on vérifie à la livraison que le produit livré figure bien dans la commande qui concerne la livraison; 
-  - Toujours à l’insertion et à la modification d’une livraison, on vérifie que la quantité totale livrée du produit qu’on souhaite livrer soit au plus égal à la quantité commandée concernant ce même produit. +  - Toujours à l’insertion et à la modification d’une livraison, on vérifie que la quantité livrée du produit soit au plus égale à la quantité commandée concernant ce même produit (si la quantité est inférieure un avoir est créé, non géré ici mais cela ne pose pas de problème)
  
 Le 1er cas est réalisable avec des contraintes d'intégrité référentielle. Comment ? Le 1er cas est réalisable avec des contraintes d'intégrité référentielle. Comment ?
  • sio2/exercices_d_applications.1742203270.txt.gz
  • Dernière modification : 2025/03/17 10:21
  • de dthevenot