Bonjour à tous,
est-ce quelqu'un pourrait me confirmer ou me corriger cet exerice svp, merci.
donc c'est un schéma de données relatives à une entreprise réalisant la fabrication de produit :
Table Fabrication : une fabrication d'un produit
id : id de la fabrication
date : date de la fabrication
produit : id du produit fabrique
responsable : id du personnel responsable(clé étrangère sur Personnel.id)
Table Personnel : un membre du personnel de l'entreprise
id : id du personnel
Table Participation : participation d'un membre du personnel à une fabrication
personnel : id du personnel participant à la fabrication ( clé étrangère sur personnel.id)
fabrication : id de la fabrication à laquelle il participe ( clé étrangère sur fabrication.id)
(personnel,fabrication) -> clé primaire
la question est : Pour être responsable d'une fabrication, un membre du personnel doit être un des fabricants de celle-ci.
Mon raisonnement rajouter trigger à la table fabrication qui va récuperer l'id de fabrication ainsi que le responsable de la fabrication, est vérifie qu'il existe un tuple dans la table participation:
donc en gros un truc du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 CREATE TRIGGER test BEFORE UPDATE,INSERT ON Fabrication FOR EACH ROW BEGIN DECLARE var integer; DECLARE prsnl integer; DECLARE fab integer; prsnl := NEW.personnel fab := NEW.fabrication select id into var from participation where personnel = persn and fabrication = fab Si aucune exception se leve laisse passer la requette, sinon si aucun tuple renvoye refuser la requete. END |
Partager