Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2005, 16h36   #1
Invité de passage
 
Inscription : septembre 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 6
Points : 2
Points : 2
Par défaut [Communes Françaises] Quel Identifiant le plus approprié ?

Bonjour,

Je suis entrain de réaliser une base de données dans laquelle je dois modèliser les communes de france.

Voulant utiliser un identifiant logique sur cette table j'ai pensé au code INSEE.

Malheureusement celui ci ne gère pas les cedex desdites communes.

Un code postal peut correspondre a plusieurs villes.
Une ville peut correspondre a plusieurs code postaux.
Un code INSEE peut correspondre a une ville et éventuellement ses CEDEX.

Soit j'utilise un autoincremente, soit je concatène le code INSEE et le code POSTAL...

Quelqu'un a déjà eu ce problème ou a une idée pour le résoudre de façon la plus pro possible ?
intenso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 16h48   #2
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
L'identifiant d'une commune (ta question) est bien le code INSEE et c'est tout.

Le code postal est une tout autre chose, ce n'est plus une division administrative, mais postale (d'ailleurs, attention, le deux premiers chiffres du code postal ne sont pas toujours le département).

Je ne sais pas ce que tu veux faire, mais si tu veux les communes : codes INSEE ; si tu veux les codes postaux : Code postaux, et si tu veux faire un lien entre les deux, il te faut une table d'association
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 16h52   #3
Membre éprouvé
 
Avatar de argoet
 
Inscription : mai 2002
Messages : 535
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 535
Points : 461
Points : 461
Chaque commune de France possède deux "matricules" distincts :
le CODE POSTAL et le NUMERO INSEE.
Ce dernier est un identifiant unique pour chaque commune de France - contrairement au premier qui regroupe plusieurs noms de communes sous le même numéro pour les besoins de gestion dans la distribution du courrier par voie postale - attribué par l'Institut National de la Statistique et des Etudes Economiques.
Il est par exemple utilisé lors de la publication des résultats du recensement.
__________________
Signé : Capitaine Jean-Luc Picard
argoet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 16h54   #4
Membre du Club
 
Inscription : septembre 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 56
Points : 42
Points : 42
Je pense que la solution d'un identifiant autoincrémenté est la plus sure pour identifier tes villes et éviter des redondances.

Mais pour pouvoir enregistrer deux villes dont le nom est identique, je pense qu'il faut par exemple mettre dans une même table le code postale ET le nom de la ville, et passer l'identifiant autoincrémenté, le nom et le code postal en clé primaire.

Ainsi, l'ensemble idauto, nom et code postale forme une clé unique, permettant d'enregistrer deux villes aux mêmes noms avec des codes postaux différents, et évitant d'enregistrer l'information deux fois.

ToCToF
toctof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 17h19   #5
Invité de passage
 
Inscription : septembre 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 6
Points : 2
Points : 2
En fait ma table commune est à la fois utilisée pour obtenir l'adresse postal et pour avoir des informations sur la mairie en gros.

Evenement (1,1) -----[avoir lieu]----- (0,n) Commune
dans ce cas la commune est une division administrative et j'ai besoin du code INSEE.

Client (1,1) -----[résider]----- (0,n) Commune
dans ce cas la commune est une adresse postale éventuellement cedex et j'ai besoin du code POSTAL.

Pour l'instant je vois 3 solutions :

1) je concatène code insee et code postal pour identifier la table commune.

2) je stock la commune (CP + libellé) du client directement dans sa table mais ca fait un travail de plus et d'éventuel erreurs de saisies.

3) j'utilise une seconde table commune cette fois ci postal mais ca fait un peu redondance de données...
intenso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 17h44   #6
Membre du Club
 
Inscription : septembre 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 56
Points : 42
Points : 42
évidemment...

Dans ce cas, la concaténation des codes semble être une bonne solution, sans trop surcharger la base de données redondantes...

Pas mieux !

ToCToF
toctof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2005, 18h39   #7
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Citation:
Envoyé par intenso
En fait ma table commune est à la fois utilisée pour obtenir l'adresse postal et pour avoir des informations sur la mairie en gros.
C'est une erreur, code postal et code commune sont des concepts différents !
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 12h50   #8
Membre du Club
 
Avatar de venegan
 
Inscription : mars 2005
Messages : 72
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 72
Points : 49
Points : 49
Si j'ai bien compris ton problème :


En toute logique je dirais :

Code :
1
2
3
4
5
6
 
Client (1,1) -----[résider]----- (0,n) Commune 
 
Client (1,1) -----[possède]----- (0,n) Code postal
 
Commune(1,1) -----[regroupe]----- (0,n) Code postal
ou bien en dénormalisant
Code :
1
2
 
Client (1,1) -----[possède]----- (0,n) Code postal,Commune
..

[/code]
venegan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 13h06   #9
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Citation:
Envoyé par venegan
Si j'ai bien compris ton problème :


En toute logique je dirais :

Code :
1
2
3
4
5
6
 
Client (1,1) -----[résider]----- (0,n) Commune 
 
Client (1,1) -----[possède]----- (0,n) Code postal
 
Commune(1,1) -----[regroupe]----- (0,n) Code postal
Je me permets une modification :

Code :
1
2
3
4
5
6
 
Client (1,1) -----[résider]----- (0,n) Commune 
 
Client (1,1) -----[possède]----- (0,n) Code postal
 
Commune(0,n) -----[regroupe]----- (0,n) Code postal
C'est pourquoi je parlais de table d'association.
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2006, 17h16   #10
Invité de passage
 
Inscription : septembre 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 6
Points : 2
Points : 2
Après quelques mois de pause je dois revenir sur ce projet :-(

Je ne comprends pas trop le terme "table association"

En fait j'aurais :

Code :
1
2
3
4
5
6
7
8
 
Client (1,1) -----[résider]----- (0,n) Commune
Client (1,1) -----[possède]----- (0,n) Code postal
Commune (1,1) -----[regroupe]----- (0,n) Code postal 
Manifestation (1,1) -----[avoir lieu]----- (0,n) Commune
Organisateur (1,1) -----[organise]----- (1.1) Manifestation
Organisateur  (1,1) -----[résider]----- (0,n) Commune
Organisateur  (1,1) -----[possède]----- (0,n) Code postal
Code :
1
2
3
4
5
6
7
8
9
 
Commune
------------
codeinsee (clé primaire)
libelle_commune
adresse_1
adresse_2
lattitude
longitude
Code :
1
2
3
4
 
CodePostal
------------
codepostal (clé primaire)

Là ou j'ai un doute, c'est que certaines manifestations ont lieu dans des lieux dits et le code INSEE ne considère pas les lieux dits.
Je peux dire à la secretaire de rentrer la commune du lieu dit et d'écrire le lieu dit en adresse 2 mais je ne sais pas si c'est normalisé par la poste.
intenso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2006, 17h50   #11
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Code :
1
2
 
Commune (1,1) -----[regroupe]----- (0,n) Code postal
Ce schéma est faux, une commune peut avoir plusieurs code postaux et un code postal peut être le même pour plusieurs communes !

Va sur www.laposte.fr, tu y trouveras les définitions dont tu as besoin (adresse normalisée entre autres)
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h25.


 
 
 
 
Partenaires

Hébergement Web