Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

Participez à la sélection du programme !

#1 Mon 27 January 2025 18:11

Aude
Juste Inscrit !
Date d'inscription: 27 Jan 2025
Messages: 2

QGIS: relation de 1 a 1

Bonjour,

J'ai 2 tables (A et B) entretenant une relation de 1 à 1 et ayant le même UID (colonne A.ID=colonne B.ID). Je souhaite pouvoir les éditer sous Qgis.

Lorsque j'utilise une jointure entre tables, lors de la création d'une entité sur la table A, je n'ai pas trouvé comment créer automatiquement une entité sur la table B ayant le même identifiant (colonne A.ID=colonne B.ID). La seule solution que j'ai trouvé est de mettre la valeur par défaut de la colonne B.ID=A.ID mais le temps de recherche est prohibitif (presque une minute à chaque création d'entité...). Peut-être qu'il y a moyen d'accélérer cette phase...

J'ai aussi tenté de passer par une relation en composition. Cela fonctionne mais le formulaire de saisie présente alors une fenêtre sur laquelle il faut cliquer pour ajouter une ligne dans la table fille... Ce n'est pas très intuitif pour les utilisateurs et cela risque d'engendrer des erreurs (possible de créer une entité sur la table A sans qu'il y ai sa correspondance sur la table B).

Cela me semble compliqué et peu convivial alors qu'il s'agit d'une simple relation 1 à 1. J'ai donc l'impression de passer à coté d'un paramètre basic. Si quelqu'un a une idée ou une solution pour accélérer le processus, je suis preneuse.

Merci et bonne journée,

Hors ligne

 

#2 Tue 28 January 2025 23:42

Sylther
Participant assidu
Lieu: Mpl
Date d'inscription: 17 May 2016
Messages: 224
Site web

Re: QGIS: relation de 1 a 1

Bonjour,

Pourquoi faire une relation 1-1 ?
C'est une vraie question.
Est-ce qu'il n'est pas plus simple (et plus cohérent en terme relationnel) de faire une unique table ?

Bien cordialement.


"Un.e géographe ne se perd jamais, iel cherche une nouvelle route."

Hors ligne

 

#3 Thu 30 January 2025 15:04

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1176

Re: QGIS: relation de 1 a 1

Il peut y avoir un intérêt je pense, quand il existe des contraintes spécifiques sur le fournisseur de données, sur les applications utilisant les données ou sur performances que l'on veut obetenir.

Je ne suis pas un expert de QGIS, mais peut être comme le suggère Sylther mieux vaudrait passer par une table unique, si vous n'avez pas de contraintes de ce genre, quitte ensuite à simuler la séparation en deux tables avec des vues (si le fournisseur de la couche de données le permet).

Hors ligne

 

#4 Mon 03 February 2025 15:59

Eckmül
Participant actif
Date d'inscription: 5 Feb 2019
Messages: 66

Re: QGIS: relation de 1 a 1

Sinon, est-ce que tu as essayé de fouiller dans le "formulaire d'attributs" ? Cela permettrait de mettre la valeur de l'ID de la couche A à la valeur de la couche B, voir même de générer automatiquement un identifiant.


Le SIG c'est donné une réponse spatiale à des problèmes statistiques

Hors ligne

 

#5 Hier 13:41

Aude
Juste Inscrit !
Date d'inscription: 27 Jan 2025
Messages: 2

Re: QGIS: relation de 1 a 1

Bonjour,

Merci beaucoup pour vos retours. effectivement je dois avoir deux tables distinctes en raison de contraintes imposées par un autre logiciel qui s'appuie sur la même base de données : une des table correspond à un géostandard et la seconde à des attributs métier que nous avons choisi d'y ajouter, mais je n'ai pas la main sur la table du géostandard...

J'ai pas mal fouillé le formulaire d'attribut, effectivement, je peux avoir un identifiant en UID pour l'ID de ma table A qui se génère automatiquement et mettre la valeur de l'ID de ma table B =TableA.ID, cependant, le temps de latence engendré avant l'ouverture de chaque formulaire est de l'ordre de une minute, ce qui n'est pas envisageable pour mes utilisateurs quotidien. En faisant le test avec une valeur par défaut de la table A de type numérique (=1) je n'ai plus de problème de latence. Mais la encore je suis contrainte pas le structure de ma table qui m'impose un UID.

J'ai mis des indexes sur les champs ID de chaque table.

Peut-être qu'il n'y a pas de solution alternative à a relation en composition.

Hors ligne

 

#6 Hier 14:53

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1176

Re: QGIS: relation de 1 a 1

J'ai pas mal fouillé le formulaire d'attribut, effectivement, je peux avoir un identifiant en UID pour l'ID de ma table A qui se génère automatiquement et mettre la valeur de l'ID de ma table B =TableA.ID, cependant, le temps de latence engendré avant l'ouverture de chaque formulaire est de l'ordre de une minute, ce qui n'est pas envisageable pour mes utilisateurs quotidien. En faisant le test avec une valeur par défaut de la table A de type numérique (=1) je n'ai plus de problème de latence. Mais la encore je suis contrainte pas le structure de ma table qui m'impose un UID.


Plutôt étrange, sauf si vous avez énormément de données ou si votre serveur est fatigué. Peut être est-ce un bug ?


Sinon est ce que votre autre logiciel doit accéder aux données en écriture ? Si ce n'est pas le cas et si vous utiliser un fournisseur de données qui le permet (PostgreSQL, SQLite, etc..) vous pouvez créer une vue pour "simuler la table B" et éditer la table composite (A+B) dans QGIS.

Hors ligne

 

Pied de page des forums

Powered by FluxBB