Bonjour à tous,
J'ai une question concernant les clés étrangères. Considérons la table suivante:
J'ai besoin de référencer la colonne "ident_equipe" depuis une autre table. Le problème c'est que comme c'est indiqué dans la définition de la clé primaire, cette colonne en soi, n'est pas une clé (ça fait partie de la clé mais elle-même, seule, n'est pas une clé). En outre, la modélisation actuelle ne me permet pas de la déclarer comme UNIQUE. En conséquence, il n'est pas possible de créer une clé étrangère vers la colonne "ident_equipe" depuis une autre table.
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 CREATE TABLE equipe( ident_hierarchie VARCHAR2(20), ident_equipe VARCHAR2(20), ident_projet VARCHAR2(20) . . . /* j'ai mis ... car il y a beaucoup de colonnes qui ne sont pas intéressantes pour cette question */ ); ALTER TABLE equipe ADD CONSTRAINT PK_EQUIPE PRIMARY KEY (ident_hierarchie, ident_equipe, ident_projet);
Ma question est donc, comment est-ce qu'on peut référencer cette colonne depuis une autre table? La solution que j'ai trouvée consistait à créer un trigger BEFORE INSERT et avant chaque insersion je vérifie si la valeur "ident_equipe" est parmi celles qui se trouvent déjà dans la table "equipe".
Je voudrais savoir est-ce qu'il existe une solution plus simple et plus intéressante?
Merci d'avance,
Cordialement,
Dariyoosh
Partager