Bonjour,
après avoir lu plusieurs interventions sur ce sujet, je ne sais plus exactement où j'en suis. Le mieux est donc de vous exposer la situation. Je dispose de
- une table POINTS comportant trois colonnes : identifiant, longitude et latitude
- une table que j'ai appelé LIMES avec trois colonnes : un identifiant, un entier correspondant à l'identifiant d'un premier point et un entier pour l'identifiant du dernier point (chaque limes est composé des tous les points dont l'identifiant est compris entre le premier et le dernier)
- une table appelée CONTOURS avec plusieurs colonnes : un identifiant et divers calculs
- une table CONTOURS_LIMES avec trois colonnes : un identifiant de contours, un identifiant de LIMES, un rang du limes, un sens de parcours du limes. Chaque contours est donc composé d'un certain nombre de limes dans l'ordre indiqué par rang et parcouru du premier au dernier point ou du dernier au premier (sens).
Cette structure a pour but de ne pas avoir de doublons au niveau des points : si la même suite de points intervient dans deux contours, celle-ci détermine un limes. Cependant si deux limes ont un et un seul point commun, j'ai pris la décision (pour des raisons d'efficacité (?)) de répéter ce point plutôt que de créer un limes composé d'un seul point.
Un exemple sera peut-être plus parlant : soit un contours composé d'un limes correspondant aux points 25 à 52, un deuxième contours composé par exemple des points suivants : les points 113 à 127 (distincts des points précédents), le point 37, puis les points 129 à 135 (distincts des points précédents).
Avec une table POINTS acceptant les doublons, on a besoin de deux limes, un (25,52) pour le premier contours, et un (113,135) pour le deuxième. le point 128 étant identique au point d'identifiant 37.
Si la table POINTS n'accepte pas les doublons il faudra pour le deuxième contour trois limes : (113,127), (37,37), (129,135). Quand je parle de doublons il s'agit bien sûr de doublons relatifs : mêmes infos sauf l'identifiant.
Votre avis.
Partager