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

Requêtes MySQL Discussion :

Optimisation de deux tables liées


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par défaut Optimisation de deux tables liées
    Bonjour,
    Réfléchissant à la structure de ma base de données, je suis confronté à deux options.

    J'ai une table contenant des informations de connexions :
    table connexion : ID | utilisateur | info1 | info 2 | etc ...

    Ma questin est : pour optimiser ma base de données, est-il plus judicieux de
    1°/ garder une seule table avec le contenu utilisateur sous forme d'une chaine de caractère ?
    Cela risquant d'augmenter la taille de ma base de données
    2°/ Sachant que ce sont souvent les mêmes utilisateurs qui se connectent, créer une deuxième table "utilisateur" de la forme ID | utilisateur et lier les deux tables entre elles
    Cette deuxieme solution ne risque-t-elle pas de complexifier le problème pour rien ?

    Merci pour vos réponses

  2. #2
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 873
    Par défaut
    Bonjour.

    Si tu as très peu de charge sur ton serveur et une volumétrie faible, tu peux te permettre de laisser ces colonnes dans la même table.

    Maintenant, pour optimiser, je dirais que tu dois regrouper les informations par usage: tu regarde toutes les requêtes effectuées sur ta base, leur fréquence, et tu procède à ton découpage.

    Le mieux étant d'identifier tes utilisateurs par un ID unique, qui servira de clé primaire sur une de tes tables et de clé étrangère pour une autre.

    Ainsi tu aurait une table "utilisateurs" avec les infos les plus sollicitées, (ID_pk, login, pass, etc), puis une table membre avec ID_fk, infos1, info2, etc.

    De cette façon, tu évite la redondance d'informations et donc de faire gonfler ta base inutilement, d'être obligé de mettre à jour la même information à plusieurs endroits etc.

    Evite la concaténation de champs dans une chaîne: toutes les requêtes un peu bateau sur tes données seront par la suite lentes et compliquées...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par défaut
    OK merci pour ta réponse.
    Je vais garder la deuxième solution.

    Cordialement

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/10/2008, 11h51
  2. [MySQL] Insertion dans deux tables liées
    Par franxi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/06/2008, 21h22
  3. Incrementation automatique de deux tables liées
    Par fsautejeau dans le forum Access
    Réponses: 8
    Dernier message: 04/07/2006, 12h18
  4. Optimisation Bases Access: Tables liées
    Par caporal dans le forum Access
    Réponses: 4
    Dernier message: 05/04/2006, 12h38
  5. Formulaire affichant deux tables liées à une troisième
    Par Mimi-des-îles dans le forum Access
    Réponses: 1
    Dernier message: 23/02/2006, 13h47

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