Vous n'êtes pas identifié(e).
Pages : 1
bonjour,
j'ai un problème de déclaration de clé étrangère entre 2 tables. que je n'arrive pas à résoudre
j'ai 3 tables :
Techantillons (id-ech(PK) , id_espece , id_organe )
Tespeces (id_espece (PK), nom_especes )
Torganes ( id organe , id_espece, nom_organe ) avec une PK sur (id_organe,id_espece ) car les organes sont spécifiques à une espèce
Pour la clé étrangére entre le Techantillons et Tespeces (sur id_espece ) pas de souci.
Par contre dans la table Techantillons je voudrais pouvoir ajouter une contrainte supplémentaire de reference sur id_organe avec la table Torganes (id_organe)
mais quand je creé la clé étrangère dans la table Techantillons sur T_espece (id organe) , j'ai un message d'erreur :
ERREUR: il n'existe aucune contrainte unique correspondant aux clés données pour la
table « organe » référencée .
ce qui me parait logique puisque ayant une PK sur (id_organe,id_espece ) id_organe n'est effectivement pas unique
y'a t il un moyen de contourné cela pour éviter cette erreur ? ou mon modèle n'est probablement pas bon ?
merci
Hors ligne
Bonjour,
Tout dépend de comment vous voulez modéliser les choses. Est-ce qu'un organe de même nom pour deux espèce différentes est un même organe ou pas (et donc un même id_organe) ? Si c'est le cas, et ça me semblerait le plus logique, il faut corriger votre table Torganes et ajouter une table définissant les organes présents par espèce. Sinon, il vous faut juste déclarer une clé étrangère sur (id_organe, id_espece).
Julien.
https://rjuju.github.io/
Hors ligne
bonjour,
l'idée serait que ma table organe fasse office de table organe par espèce,
j'ai réussi à déclarer une clé étrangère sur (id_organe, id_espece)
et cala fonctionne comme souhaité moyennant un remplissage de la table organe en cohérence avec ceux déjà présent dans la table echantillon , ce qui est le but recherché .
merci de votre conseil
Hors ligne
Pages : 1