#1 Wed 03 June 2009 21:16
- El_Pablo
- Participant occasionnel
- Lieu: Trois-Rivières
- Date d'inscription: 29 Oct 2008
- Messages: 10
Schéma de BD pour la représentation des villes
Bonjour,
J'aimerais avoir votre opinion sur la structure de BD suivante. Je voudrais schématiser les villes du Canada, cependant, j'hésite entre deux structures. Les villes du Québec peuvent être divisés en arrondissement et chaque arrondissement peut être divisé en quartier.
Le but est de pouvoir positionner une table de rues. Celles-ci peuvent appartenir à un quartier, arrondissement ou ville.
Mes deux structures sont les suivantes:
Solution 1 : Séparer chaque entité dans des tables différentes.
Villes (pkVilleID, nom, ...)
Arrondissements (pkArrondissementID, fkVilleID, nom, ...)
Quartiers (pkQuartierID, fkArrondissementID, nom, ...)
Solution 2 : N'avoir qu'une table unique avec un clé de parent.
villes (pkVilleID, fkParentID, nom, ...)
Quelle est votre suggestion?
-----
Nick B le programmeur non géomaticien
Hors ligne
#2 Thu 04 June 2009 06:22
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Schéma de BD pour la représentation des villes
Bonjour,
La solution 2 est à proscrire. Et ceci n'a rien à voir avec la géomatique.
Toujours essayer de partir de la problématique réelle pour déterminer une modélisation qui colle le plus à celle-ci, et ensuite avoir un schéma de base de donnée qui soit le plus proche possible du schéma objet qu'utilisera le programme.
Les villes du Québec sont composées d'arrondissements qui sont composés de quartiers
Donc votre modèle de la solution 1 avec une jointure avec suppression en cascade (composition)
Une rue appartient à un quartier ou un arrondissement ou une une ville
Donc un objet rue a une relation n-1 avec l'un des trois objets précédents donc:
Rues(pkRue, IDcontainer As Integer, TypeRue as String)
Ou TypeRue stocke une valeur : arrondissement ou ville ou quartier
et IDContainer stocke la référence de la clef primaire de l'objet en relation.
Une autre solution est de définir trois tables Rues une pour chacun des type de rues. Ce qui au niveau modélisation revient à définir une classe abstraite Rue et trois classe dérivée Rue_Ville, Rue_Quartier, Rue_Arrondissement.
Personnellement j'opterai pour cette dernière forme.
A+
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#3 Thu 04 June 2009 15:05
- El_Pablo
- Participant occasionnel
- Lieu: Trois-Rivières
- Date d'inscription: 29 Oct 2008
- Messages: 10
Re: Schéma de BD pour la représentation des villes
Merci pour ta suggestion.
Dans mon cas, il est vrai que cela ne relève pas directement de la géomatique, mais d'un modèle relationel de base de données.
Le but premier est de réduire la redondance. Le problème avec la solution que vous m'offrez est la redondance de la structure des rues donc au niveau de la maintenance de la BD cela semble problématique.
La deuxième solution que j'emmenais permettait de réduire cette redondance, car les structures de villes, arrondissements et quartiers sont identiques. Un autre problématique se situe au niveau de l'interface de l'utilisateur.
Le but de la partie du système que je développe est de permettre la localisation d'immeuble. Lorsque l'utilisateur doit localiser un immeuble, il doit choisir à l'aide de liste déroulante la ville, l'arrondissement, le quartier et ensuite la rue. Avec ma première solution, je devais dupliquer les villes qui n'avaient pas d'arrondissement dans les tables arrondissements et quartiers de manière à ce que les rues soient tous liées à un quartier. Ce qui était encombrant au niveau de la maintenance des données et pour l'utilisateur.
La solution 2 permet de faire de la sélection par condition, c'est-à-dire si l'utilisateur choisit un ville qui a un arrondissement, on débloque la liste déroulante des arrondissements, si ce dernier a des quartiers, on débloque les quartiers ainsi de suite.
Cependant, je développe en Filemaker qui peut être un tantinet "pain in the ass" à la longue.
C'est ainsi que je demandais des suggestions de votre part pour pouvoir me guider.
-----
Nick B le programmeur non géomaticien
Hors ligne
#4 Thu 04 June 2009 15:21
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Schéma de BD pour la représentation des villes
Bonjour,
C'est toute la problématique de developper une application avec l'interface native de la BD, j'utilise régulièrement Access et bientôt SQL server 2008, mais je developpe avec VB.net. Ce qui me permet de mettre en oeuvre facilement une solution de type 2 ou 3, sans être géné.
A mon sens la BD ne doit servir que d'interface de stockage et d'interrogation, l'applicatif métier doit lui être construit autour d'une solution objet.
car les structures de villes, arrondissements et quartiers sont identiques
mais ce ne sont pas les même choses dans la vie réelle, ce qui ressemble fortement à du polymorphisme, non ?
A+
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne