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

PHP & Base de données Discussion :

est t'il plus rapide de récupérer l'id dune ville ou de mettre directement la ville [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut est t'il plus rapide de récupérer l'id dune ville ou de mettre directement la ville
    Bonjour, j'ai un base de donnée des code postaux

    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    table cp
     
    cp
    ville
    pays

    je vais enregistrer mes contacts en me servant de cette base de donnée.
    dans un formulaire je tape le code postal(avec ajax pour l'auto complétion par exemple) et avec le résultat, la comme sera pré remplis dans le champ "commune ".

    quel est la meilleur façon d'enregistrer mon code postal avec le nom d'un contact ?

    1- dans ma table contact je récupère juste le code postal et la commune.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    table contact
     
    nom = dupont
    codepostal = 75000 //je récupère la saisie pour le mettre dans le champs
    commune = paris //avec le code postal je récupère le commune et j'enregistre dans ce le champs commune
    2- j'ajoute dans la table cp un identifiant
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    table cp
     
    id_localisation //je crée un id
    cp
    ville
    pays

    avant d'enregistrer le code postal et la commune dans la table contact,
    je recherche l'id du code postal rechercher et je l' enregistre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    table contact
     
    nom = dupont
    id_localisation //je récupère juste l'id
    lequel des ces 2 solutions est le plus optimiser du coté php et mysql ?

    je vous remercie pour la réponse

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    L'optimisation n'est pas le seul critère à prendre en compte quant on conçoit une Bdd (et surement le reste), mais leur impact selon la manière dont on l'aura fait.

    Sans compter qu'il y a des normes aussi.

    La norme dit qu'il vaut ne pas procéder comme ainsi car cela provoque de la redondance de données, de la duplication.
    Et la redondance de données peu provoquer des incohérences, sans compter quelle peu rendre la gestion de ces plus compliquée (plus de codes, etc ...), et donc une perte de performance.

    Cas très simple.
    Imagine qu'il faille modifier ne nom de cette ville (pour X ou Y raison), et bien il va falloir prévoir de mettre à jour toutes les tables contenant cette donnée dupliquée.

    Si on ne le fait, il y aura inévitablement des incohérences.
    Les surcouches de code devront être fiables dans le temps (sur-cout de la maintenance du code).
    Et l'économie qu'on aura fait en les dupliquant peuvent être perdues à causes des mises à jours.


    Le principe de base d'un SGBDR est justement fait lier les données entre elles, et non les dupliquer.
    A coté de ça il y a des cas particuliers lié au métier, à certaine spécificités qui fait qu'il n'y a pas d'autres choix que de dupliquer les données.
    L'optimisation en fait partie d'ailleurs il est vrai.
    Mais en règle général cela se fait sur des données qui sont théoriquement figées dans le temps.
    Genre un bilan annuel, etc ...


    Maintenant c'est à toi de voir, de peser le pour ou le contre selon les incidences qu'il peu avoir.
    (faut tenter de le voir dans le temps, sur plusieurs années peut être).

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    Merci runcode
    je vais choisir la solution de l'id_localisation.
    je travaille avec symony2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 35
    Dernier message: 10/04/2015, 12h33
  2. int vs double: qui est le plus rapide?
    Par Chewbi dans le forum C++
    Réponses: 23
    Dernier message: 25/03/2006, 02h58
  3. [Optimisation] Lequel est le plus rapide ?
    Par TOTO32 dans le forum Langage
    Réponses: 10
    Dernier message: 14/08/2005, 23h19
  4. Réponses: 16
    Dernier message: 19/05/2005, 16h20
  5. [FB1.5]Quelle est la requete la plus rapide ?
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2004, 13h46

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