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

 MySQL Discussion :

Optimisation Schéma / Requete MySQL


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 89
    Par défaut Optimisation Schéma / Requete MySQL
    Rebonjour, c'est encore moi

    J'aimerais associer des phrases (que je divise en mots) à des membres dans une base de données.

    Tout d'abord j'aimerais être sure que mon schéma est correct (j'ai déjà demandé mais j'aimerais être sure que j'ai bien suivi les conseils qu'on ma donné)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Table mots
    -----------------------
    mot_id		mot_mot
    1		je
    2		suis
    3		fou
     
     
    Table phrases
    -----------------------
    phrase_id	mot_id		mot_ordre
    1		1		1
    1		2		2
    1		3		3
    2		1		NULL
     
     
     
    Table membres
    -----------------------
    membre_id	membre_nom
    1		moi
    2		toi
     
     
    Table membres_phrases
    -----------------------
    membre_id	phrase_id
    1		1
    1		2
    2		1
    - Ce schéma vous semble t'il correct ?

    - Quelle serait la requête ou les requêtes MySQL les plus efficaces pour trouver toutes les phrases associées au compte d'un membre dont l'id est 1 par exemple ?

    Quelle colonne est il préférable que je mette en index, primary keys etc ?

    Encore merci pour vos conseils !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par beninsky Voir le message
    - Ce schéma vous semble t'il correct ?
    A première vue oui.

    - Quelle serait la requête ou les requêtes MySQL les plus efficaces pour trouver toutes les phrases associées au compte d'un membre dont l'id est 1 par exemple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT mp.phrase_id, m.mot_mot
    FROM mots AS m
    INNER JOIN phrases AS p ON m.mot_id = p.mot_id
      INNER JOIN membres_phrases AS mp ON p.phrase_id = mp.phrase_id
    WHERE mp.membre_id = 1
    ORDER BY mp.phrase_id, p.mot_ordre
    Quelle colonne est il préférable que je mette en index, primary keys etc ?
    - Les clés étrangères, donc toutes celles contenant 'id'.
    - Les colonnes les plus recherchées telles que 'membre_nom'.

    Les clés primaires sont automatiquement indexées.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 89
    Par défaut
    Encore une fois, merci beaucoup pour ta réponse CinePhil.

    Je vais étudier ton code d'après mon exemple en utilisant la doc (je n'arrive toujours pas à trouver d'exemples suffisamment pertinents pour que je comprenne la logique des requêtes SQL et des jointures entre tables)

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par beninsky Voir le message
    (je n'arrive toujours pas à trouver d'exemples suffisamment pertinents pour que je comprenne la logique des requêtes SQL et des jointures entre tables)
    Tu as étudié le cours de SQLPro ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 89
    Par défaut
    Bonsoir,

    J'ai commencé à étudier le cours de SQLPRO mais j'avoue que j'ai encore beaucoup de mal à comprendre les requêtes SELECT compliquées.

    Par exemple dans mon schéma ci-dessus j'essaie de créer une requête qui sélectionnera l'id de la phrase "je suis fou" dans la table phrases, le problème c'est qu'il peut y avoir plusieurs phrases commençant par "je suis fou", comment limiter la requête à ces 3 mots précisément et dans cette ordre la ? Est-ce qu'une telle requête est possible ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 89
    Par défaut
    Quelqu'un pour m'aider ?

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

Discussions similaires

  1. Optimisation requete (MySQL 4.1 ou sup)
    Par Jean Fi dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/04/2008, 09h29
  2. optimisation requetes mysql
    Par pas30 dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/12/2007, 15h56
  3. [MySQL] Optimisation de requete SQL
    Par fabien14 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/09/2006, 09h39
  4. 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
  5. AIdez moi à optimiser cette requete MySQL SVP
    Par petozak dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/09/2005, 15h16

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