#1 Mon 10 August 2015 14:20
- Bajbouja!2
- Participant occasionnel
- Date d'inscription: 22 Jul 2015
- Messages: 16
QGIS : Plugin DATA-Driven InputMask
Bonjour,
J'ai testé le plugin data-driven input Mask pour des relation 1-n et ça fonctionne très bien.
Le problème c'est que sous postgis quand je veux définir une nouvelle clé étrangère dans la même table pour faire une relation avec une autre table, postgis me dis qu'il n'existe auccune contrainte unique correspondant aux clés données pour la table...
Pourtant j'ai bien vérifié que la clé primaire est bien définie dans cette dernière table...
C'est peut être pas possible de mettre deux clés étrangères dans la même table ?
Merci d'avance pour votre aide.
Cordiales salutations.
Hors ligne
#2 Mon 10 August 2015 15:03
Re: QGIS : Plugin DATA-Driven InputMask
Bonjour,
Il est bien sûr possible de mettre plusieurs clés étrangères dans la même table.
La ou les colonnes définissant la clé étrangère doi(ven)t respecter une contrainte d'unicité dans la table référencée.
Dernière modification par jmarsac (Mon 10 August 2015 15:36)
Jean-Marie
Azimut
Hors ligne
#3 Mon 10 August 2015 15:13
- Bajbouja!2
- Participant occasionnel
- Date d'inscription: 22 Jul 2015
- Messages: 16
Re: QGIS : Plugin DATA-Driven InputMask
Bonjour,
Merci pour votre réponse.
Contrainte d'unicité cela veut dire une clé primaire unique ?
Hors ligne
#4 Mon 10 August 2015 15:57
Re: QGIS : Plugin DATA-Driven InputMask
C'est la combinaison de colonnes constituant la clé étrangère qui doit être unique; il doit donc y avoir une contrainte d'unicité sur ces colonnes dans la table référencée.
Exemple:
Une table rues et une table adresses qui référence les rues
pour la table rues
Code:
CREATE TABLE rues( departement character(2), insee_commune integer, nom character varying(64), CONSTRAINT cle_rue UNIQUE(departement,insee_commune,nom) );
ou
Code:
CREATE TABLE rues( departement character(2), insee_commune integer, nom character varying(64), CONSTRAINT cle_rue PRIMARY KEY (departement,insee_commune,nom) );
et pour la table adresses
Code:
CREATE TABLE adresses( numero integer, repetition character(3), d character(2), i integer, n character(64), FOREIGN KEY (d, i, n) REFERENCES rues(departement, insee_commune,nom) );
Jean-Marie
Azimut
Hors ligne
#5 Mon 10 August 2015 16:12
- Bajbouja!2
- Participant occasionnel
- Date d'inscription: 22 Jul 2015
- Messages: 16
Re: QGIS : Plugin DATA-Driven InputMask
Bonjour,
C'est très clair Merci beaucoup,
J'ai redéfini mes clés comme dans l'exemple que vous avez mentionné et maintenant ça marche sans soucis.
Merci infiniment
Salutations.
Hors ligne