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

Schéma Discussion :

Personnes, régions, codes-postaux


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Personnes, régions, codes-postaux
    Bonjour,

    Je me permets de solliciter vos avis avant de me lancer dans la création de ma base de données.
    Cette dernière aura pour but de stocker des utilisateurs selon leur lieu de résidence (plusieurs régions). J'aimerais anticiper, de sorte à pouvoir la moduler et l'optimiser dans l'éventualité ou elle contiendrait un grand nombre d'utilisateurs.

    Dois je travailler avec plusieurs bases (une par région par exemple) ?
    Sachant qu'a certains moments, j'aurai besoin de pouvoir définir la région de l'utilisateur via son code postal.
    Je suis un peu pommé et j'espère que mon message ne vous paraitra pas trop flou.
    En vous remerciant par avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Bonjour.

    Avant de penser à créer des bases et des tables, il faut commencer par la modélisation des données.

    stocker des utilisateurs selon leur lieu de résidence (plusieurs régions)
    ...
    j'aurai besoin de pouvoir définir la région de l'utilisateur via son code postal
    Je déduis de ce que tu as écrit les règles de gestion suivantes :
    RG1) Un utilisateur réside dans un seul code-postal et un code-postal peut caractériser la résidence de plusieurs utilisateurs.

    RG2) Un code postal est situé dans une seule région et une région contient de un à plusieurs codes postaux.

    Note :
    Il faudrait vérifier que la RG2 est vraie car je crois qu'il existe des codes postaux qui couvrent un territoire dépassant le département défini par leur deux premiers chiffres mais je ne sais pas s'il en existe parmi ceux-ci qui débordent de leur région.

    Il en découle le MCD suivant :
    Utilisateur -1,1----Résider----0,n- Code_postal -1,1----Situer----1,n- Région

    Ce MCD engendre les tables suivantes :
    Region (rgn_id, rgn_nom)
    Code_postal (cp_id, cp_id_region, cp_code)
    Utilisateur (usr_id, usr_id_code_postal, usr_nom...)

    Dois je travailler avec plusieurs bases (une par région par exemple) ?
    Très mauvaise idée a priori ! À n'envisager que lorsque tu auras un serveur par région avec des dizaines de millions d'utilisateurs à gérer, et encore !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Je vous remercie d'avoir pris le temps de me répondre.
    J'ai bien ce genre de MCD.
    region(rgn_id, rgn_nom)
    departement(dep_id, rgn_id, dep_nom)
    ville(ville_id, dep_id, ville_cp, nom)
    utilisateur(usr_id, usr_nom, usr_prenom, usr_cp...)

    Je n'en suis pas certain à 100%, je cherche à faire au mieux pour pouvoir accéder facilement aux différentes données par la suite.

    Par contre, dés le départ, l'utilisateur devra saisir son code postal / ville.
    En terme de nombre d'enregistrements, la table ville est assez imposante alors j'essaie d'anticiper pour optimiser le temps de réponse, mais je ne vois pas vraiment de solution.

    Idem pour les utilisateur et leur identification, j'aurai besoin de connaître leur région / ville, j'imagine le parcours de la table...

    Suis je dans le vrai ou complétement à côté de la plaque ? auriez vous quelques conseils pour ne pas me planter dés le départ s'il vous plait ?

    En vous remerciant par avance.
    Sincères salutations

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En terme de nombre d'enregistrements, la table ville est assez imposante
    Ton modèle est bon s'il ne concerne que les villes françaises. Tu auras donc, comme moi, 36 682 villes dans ta table, ce qui n'est vraiment pas énorme pour une table de SGBDR, rassure-toi ! J'ai travaillé personnellement avec des tables de plusieurs dizaines de millions de lignes sans difficulté sur un serveur, correct mais sans plus, il y a 2 ans. Et même sur un simple portable de l'époque, j'arrivais à requêter ces tables avec jointures dans des temps raisonnables.

    Par contre, tu sais qu'une ville peut avoir plusieurs codes postaux et qu'un code postal peut correspondre à plusieurs villes ?
    Alors soit ta table des villes est en fait une table des codes postaux et tu auras plusieurs fois certaines villes dans la table, soit tu sors le code postal de la table ville et tu le laisses seulement dans la table des utilisateurs.

    Idem pour les utilisateur et leur identification, j'aurai besoin de connaître leur région / ville, j'imagine le parcours de la table...
    Il suffit de trois jointures mais tu devrais mettre en clé étrangère dans utilisateur l'identifiant de la ville et non pas le code postal !
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT u.usr_nom, u.usr_prenom, u.usr_cp
        v.nom AS ville,
        r.rgn_nom AS région    
    FROM utilisateur u
    INNER JOIN ville v ON v.ville_id = u.usr_id_ville
        INNER JOIN departement d ON d.dep_id = v.dep_id
            INNER JOIN region r ON r.rgn_id = d.rgn_id
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Se procurer bases de données ISBN, UCP, Codes postaux...
    Par zatomik dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 26/10/2010, 19h55
  2. Liste des villes et codes postaux
    Par CynO dans le forum Services
    Réponses: 11
    Dernier message: 27/09/2007, 01h07
  3. Experts Mysql : Optimiser une requete sur codes postaux
    Par El Riiico dans le forum Requêtes
    Réponses: 6
    Dernier message: 20/01/2006, 18h00
  4. Comment gérer les codes postaux sous access?
    Par Jac_S_69 dans le forum Access
    Réponses: 3
    Dernier message: 01/12/2005, 21h38
  5. Tri par Codes Postaux + Noms d'entreprises
    Par matperino dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/07/2005, 14h04

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