06-12-2008, 12:52 PM
En fait, il faut modéliser une relation plusieurs à plusieurs (avec 2 tables, donc).
Une table contients les territoires, l'autre les liaisons d'un territoire à l'autre.
Par exemple, dans la table pays, on a le couple (id | nom) :
Notre table qui lieraient des pays à des pays (qu'on pourrait appeler pays_pays) contiendraient les données suivantes (id_pays_1 | id_pays_2 | distance) :
Je ne sais pas si tu as déjà fais de la théorie des graphes, mais c'en est. Avec ça tu modélises un graphe orienté car tu peux faire des frontière à sens unique en retirant une ligne dans la table : si j'enlève la première ligne de la table, les Français ne peuvent plus aller en Belgique, mais les Belges peuvent aller en France. Tu peux également avoir un poids (la distance, en l'occurrence) qui diffère pour aller d'un point à un autre (le trajet Belgique/Allemagne peut être plus court (pour telle ou telle raison) que le trajet Allemagne/Belgique). Tu peux également avoir plusieurs chemins d'un point à un autre, ou plusieurs types de chemin (aérien, maritime, sous-terrain, terrestre, téléportation, etc.)
Enfin bon, ça claque quoi. Et avec ça, tu peux facilement appliquer plein, plein d'algorithme qui concernent cette même théorie des graphes.
Sephi-Chan
Une table contients les territoires, l'autre les liaisons d'un territoire à l'autre.
Par exemple, dans la table pays, on a le couple (id | nom) :
Citation :1 | France
2 | Belgique
3 | Allemagne
4 | Suisse
5 | Italie
6 | Espagne
7 | Portugal
Notre table qui lieraient des pays à des pays (qu'on pourrait appeler pays_pays) contiendraient les données suivantes (id_pays_1 | id_pays_2 | distance) :
Citation :1 | 2 | 3 # Signifie que la France (1) touche la Belgique (2) et qu'il y a 3 unités de distance entre les 2.
2 | 1 | 3 # Signifie que la Belgique (2) touche la France (2) et qu'il y a 3 unités de distance entre les 2.
1 | 3 | 3 # Frontière France/Allemagne avec une distance de 3.
3 | 1 | 3 # Frontière Allemagne/France avec une distance de 3.
2 | 3 | 2 # Frontière Allemagne/Belgique avec une distance de 2.
3 | 2 | 2 # Frontière Belgique/Allemagne avec une distance de 3.
Etc. # Ça, ça veut dire que je vais pas tous les faire…
Je ne sais pas si tu as déjà fais de la théorie des graphes, mais c'en est. Avec ça tu modélises un graphe orienté car tu peux faire des frontière à sens unique en retirant une ligne dans la table : si j'enlève la première ligne de la table, les Français ne peuvent plus aller en Belgique, mais les Belges peuvent aller en France. Tu peux également avoir un poids (la distance, en l'occurrence) qui diffère pour aller d'un point à un autre (le trajet Belgique/Allemagne peut être plus court (pour telle ou telle raison) que le trajet Allemagne/Belgique). Tu peux également avoir plusieurs chemins d'un point à un autre, ou plusieurs types de chemin (aérien, maritime, sous-terrain, terrestre, téléportation, etc.)
Enfin bon, ça claque quoi. Et avec ça, tu peux facilement appliquer plein, plein d'algorithme qui concernent cette même théorie des graphes.
Sephi-Chan