Bonjour à tous,


J'ai une question concernant les clés étrangères. Considérons la table suivante:
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);
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.

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