Pages: 1
- Sujet précédent - Récupération d'un ID d'une table pour l'insérer dans une autre - Sujet suivant
#1 Wed 10 May 2017 18:37
- Brice Belouin
- Juste Inscrit !
- Date d'inscription: 10 May 2017
- Messages: 8
Récupération d'un ID d'une table pour l'insérer dans une autre
Bonjour
Sur PostgreSQL (avec l'extension PostGIS), je travail sur deux tables : une nommée "Oiseaux" contenant des données d'oiseaux non géoréférencées et une autre nommée "Geometry_ponctuelles" contenant la position géographique de ces oiseaux (donc avec une colonne public.geometry). Sachant que chaque donnée d'oiseau correspond à un point et chaque point correspond à une donnée d'oiseaux. Pour faire le lien entre les deux tables, j'ai créé une colonne dans chaque table qui contient pour chaque donnée, l'identifiant unique auquel la donnée appartient dans l'autre table.
Je ne peut pas géoréférencer ma table "Oiseaux" car j'ai des données en point, en ligne et en polygone. J'ai donc créé une table pour chaque type de géométrie mais je me concentre tout d'abord sur la table des entités ponctuelles.
J'ai créé une vue pour visualiser sur Qgis les données d'oiseaux géoréférencées en point.
Je voudrais créer des règles sur cette vue pour que, depuis Qgis, quand on ajoute, modifie ou supprime une donnée, la modification s'enregistre automatiquement dans les différentes tables. Pour les règles de modification et de suppression, je n'ai pas rencontré de problème mais j'ai du mal à créer la règle d'ajout.
Cela car en plus d'ajouter une ligne dans chaque table (requête que je sais faire), je voudrais, pour faire le lien entre les tables, récupérer l'identifiant unique auquel la donnée appartient sur la table "Oiseaux" et l'insérer dans la colonne de liaison de la table "Geometry_ponctuelles" puis faire l'inverse, c'est à dire : récupérer l'identifiant unique auquel la donnée appartient sur la table "Geometry_ponctuelles" et l'insérer dans la colonne de liaison de la table "Oiseaux".
Je ne sais pas comment faire cela.
Sauriez-vous comment procéder ?
Merci beaucoup
Hors ligne
#2 Wed 10 May 2017 22:29
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: Récupération d'un ID d'une table pour l'insérer dans une autre
Bonjour,
Je ne peut pas géoréférencer ma table "Oiseaux" car j'ai des données en point, en ligne et en polygone. J'ai donc créé une table pour chaque type de géométrie mais je me concentre tout d'abord sur la table des entités ponctuelles.
Rien ne vous empêche d'ajouter plusieures colonnes géométriques à une table.
Cela n'est, à ma connaissance, considéré comme une mauvaise pratique, mais je peux me tromper.
Dernière modification par tumasgiu (Wed 10 May 2017 22:31)
Hors ligne
#3 Thu 11 May 2017 09:22
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Récupération d'un ID d'une table pour l'insérer dans une autre
Bonjour,
D'accord avec Tumasgiu: une seule table avec les colonnes géo nécessaires pour modéliser votre cas.
Pour moi, ce n'est pas une mauvaise pratique en soi: certains outils géo ne verront pas la table car elle a plusieurs colonnes géo, mais des vues permettront de régler ce pb.
Vos mises a jour seront bien plus simples avec ce modèle.
Enfin, lors des requetes en insert (et update), vous pouvez utilisez le mot clé RETURNING <id>, ou <id> est l'identifiant de votre table: ca permet de savoir la valeur de l'id de la ligne insérée (surtout pratique pour les id de type serial)
Nicolas
Hors ligne
#4 Thu 18 May 2017 12:51
- Brice Belouin
- Juste Inscrit !
- Date d'inscription: 10 May 2017
- Messages: 8
Re: Récupération d'un ID d'une table pour l'insérer dans une autre
Bonjour
Merci pour vos réponses !
En effet ça à l'air de ne pas trop mal fonctionner en mettant plusieurs colonnes de géométrie dans la table "Oiseaux", et ça simplifie les requêtes.
Hors ligne
Pages: 1
- Sujet précédent - Récupération d'un ID d'une table pour l'insérer dans une autre - Sujet suivant