Bonjour, je voudrais votre avis sur une requête sql qui est présentée ci dessous.
Le but, étant de créer une page comme twiiter où les membres peuvent suivre l'actualité d'autre membres.
Voici un exemple de la bas de données (mysql) pour mieux comprendre la question :
table membres :
id, membres, etc...
table follow :
id, id-du-membre, id-de-la-personne-qu'il-follow
Publication-membre :
id, id-membre, text, date, etc..
Quand on va sur la page membres.monsite.com/le-membre, j'envoie deux requêtes sql :
Puis l'on récupère toutes les id des personnes qu'il follow. Puis j'envoie une nouvelle requête comme ceci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT `id-de-la-personne-qu'il-follow` FROM `follow` WHERE `membre` = 'son-id';
Si la personne suit 500 personnes ça ne risque pas d'être trop lourd ? On ne peut pas alléger la requête avec un LEFT JOIN ou INNER JOIN ? Je ne suis pas un pro en ce qui concerne les bases de données (j'utilise mysql).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT `id`, `text`, `date`, membre.id, membre,pseudo FROM `publication` LEFT JOIN `membre` (publication.membreid = membre.id) WHERE `id-membre` = 'son-id' OR `id-membre` = 'id2' OR `id-membre` = 'id3' OR `id-membre` = 'etc.' ORDER BY `date` DESC LIMIT 20;
Ou vaut il mieux de limiter le nombre de follow à 100, pour ne pas avoir un where trop grand ?
ps : j'utilise un système de mise en cache qui va quand même grandement alléger le tout, mais je souhaite limiter au maximum la lourdeur de la requête car ce sera la plus gourmande du site !
Partager