IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Décisions SGBD Discussion :

[Communes Françaises] Quel Identifiant le plus approprié ?


Sujet :

Décisions SGBD

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 5
    Points
    5
    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 ?

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    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

  3. #3
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    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.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    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

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    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...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    é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

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    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 !

  8. #8
    Membre régulier Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Points : 70
    Points
    70
    Par défaut
    Si j'ai bien compris ton problème :


    En toute logique je dirais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Client (1,1) -----[possède]----- (0,n) Code postal,Commune
    ..

    [/code]

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par venegan
    Si j'ai bien compris ton problème :


    En toute logique je dirais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Commune
    ------------
    codeinsee (clé primaire)
    libelle_commune
    adresse_1
    adresse_2
    lattitude
    longitude
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  11. #11
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

Discussions similaires

  1. Quel est le moyen le plus approprié pour formuler un code
    Par medreg dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2010, 19h53
  2. Réponses: 6
    Dernier message: 13/11/2007, 13h06
  3. Quel est le plus performant?
    Par trotters213 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 31/03/2005, 15h23
  4. choix du sbgbd le plus approprie
    Par j_siyar dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 03/03/2005, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo