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

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 29 November 2021 16:09

Hippo
Participant actif
Date d'inscription: 18 Jan 2015
Messages: 57

Bonne pratique pour une jointure entre 2 tables

Ma question va sûrement de soi pour beaucoup mais j'aimerais un éclaircissement en terme de bonnes pratiques sur ma problématique svp.

J'ai 2 tables de données. Dans l'une j'ai l'ensemble des communes d'un département avec leur code INSEE. Dans l'autre, j'ai des parcelles appartenant à plusieurs communes, et le code insee des communes de rattachement.

Dans QGIS, afin de joindre mes 2 tables, je fais une simple jointure sur le code insee.
Pour autant, dans PostGreSQL/PostGIS, puis-je opérer de la même façon avec une relation de 1 à N ou dois je préférablement créer une nouvelle colonne dans chaque table avec un id unique pour l'indexation, sur lequel je devrai faire ma jointure (et non sur le code insee donc) ?

Hors ligne

 

#2 Mon 29 November 2021 17:15

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Bonne pratique pour une jointure entre 2 tables

Bonjour,

Vous pouvez tout a fait lier les deux tables sur le code insee, sans rajouter de colonne.
En passant par des valeurs entieres (et non texte comme le code insee), les manipulations iront un poil plus vite, mais pas sur du tout que ce soit significatif.

Nicolas

Hors ligne

 

#3 Mon 29 November 2021 17:27

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

Re: Bonne pratique pour une jointure entre 2 tables

Bonjour,

Sauf en Corse le code INSEE peut la plupart du temps être défini comme un entier même si l'affichage peut éventuellement perturber pour les départements 01 à 09

Dernière modification par jmarsac (Mon 29 November 2021 17:29)


Jean-Marie
Azimut

Hors ligne

 

#4 Tue 30 November 2021 11:59

Hippo
Participant actif
Date d'inscription: 18 Jan 2015
Messages: 57

Re: Bonne pratique pour une jointure entre 2 tables

Super, merci pour vos réponses.
Et bonne remarque concernant la Corse !

Hors ligne

 

#5 Tue 30 November 2021 13:10

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

Re: Bonne pratique pour une jointure entre 2 tables

jmarsac a écrit:

Sauf en Corse le code INSEE peut la plupart du temps être défini comme un entier même si l'affichage peut éventuellement perturber pour les départements 01 à 09


Mais comme à la création de ces codes insees, il n'existait qu'un seul département Corse , il n'y a pas de collisions de code insee entre les deux (maintenant de nouveau réunis)  départements, et vous pouvez tout de même les considérer comme des entiers. wink


Un petit test rapide de sur une jointure simple sans index de deux tables contenant chacunes 100000 nombres aléatoires similaires aux codes insee ne donne pas vraiment de différence entre l'utilisation d'entier par rapport à du texte (type text, char ou varchar) sous pg 11.


Bien entendu, cela doit dépendre de la requête et de son contexte d'utilisation.

Hors ligne

 

Pied de page des forums

Powered by FluxBB