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 |