Voilà, je me posais cette question, vaut-il mieux une méga requête ou plusieurs petites ?

Je suis en cours de me faire un petit forum perso, j'en suis pour l'instant aux prémices.

Donc j'ai décidé de faire pour l'instant l'affichage des catégories et sous-catégories en 2 requêtes.

Ci-dessous la structure provisoire de mes tables :

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
33
34
35
36
f_cat
+-------+-----------------+------+-----+---------+-------+
| Field | Type            | Null | Key | Default | Extra |
+-------+-----------------+------+-----+---------+-------+
| id    | int(2) unsigned | NO   | PRI |         |       |
| nom   | varchar(50)     | NO   |     |         |       | 
+-------+-----------------+------+-----+---------+-------+
f_ss_cat
+---------+-----------------+------+-----+---------+-------+
| Field   | Type            | Null | Key | Default | Extra |
+---------+-----------------+------+-----+---------+-------+
| id      | int(2) unsigned | NO   | PRI |         |       |
| id_cat  | int(2) unsigned | NO   |     |         |       |
| nom     | varchar(150)    | NO   |     |         |       |
| comment | varchar(255)    | NO   |     |         |       |
+---------+-----------------+------+-----+---------+-------+
f_sujet
+-----------+-----------------+------+-----+---------+----------------+
| Field     | Type            | Null | Key | Default | Extra          |
+-----------+-----------------+------+-----+---------+----------------+
| id        | int(6) unsigned | NO   | PRI | NULL    | auto_increment |
| id_ss_cat | int(2) unsigned | NO   |     |         |                |
| nom       | varchar(50)     | NO   |     |         |                |
| clos      | tinyint(1)      | YES  |     | NULL    |                |
+-----------+-----------------+------+-----+---------+----------------+
f_reponse
+----------+-----------------+------+-----+-------------------+----------------+
| Field    | Type            | Null | Key | Default           | Extra          |
+----------+-----------------+------+-----+-------------------+----------------+
| id       | int(8) unsigned | NO   | PRI | NULL              | auto_increment |
| id_sujet | int(6) unsigned | NO   |     |                   |                |
| auteur   | varchar(20)     | NO   |     |                   |                |
| contenu  | text            | NO   |     |                   |                |
| num      | int(4) unsigned | NO   |     | 0                 |                |
| date     | timestamp       | YES  |     | CURRENT_TIMESTAMP |                |
+----------+-----------------+------+-----+-------------------+----------------+
Pour lister les catégories, total des sujets et total des messages, j'obtiens cette requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT C.nom, COUNT(R.num) AS tt_sujet, COUNT(R.num) AS tt_rep
FROM f_cat AS C
LEFT JOIN f_ss_cat AS SC
ON C.id = SC.id_cat
LEFT JOIN f_sujet AS S
ON SC.id = S.id_ss_cat
LEFT JOIN f_reponse AS R
ON S.id = R.id_sujet
GROUP BY C.nom
HAVING tt_sujet = 0;
Ce que je trouve déjà assez lourd, enfin je trouve, donc vaut-il mieux y ajouter la sélection des sous-catégories de chaques catégories dans cette requête, ou de faire un seconde requête(ce que je suis parti pour faire), ou cela revient-il au même ?

Merci de vos réponses