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 :
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
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 | | +----------+-----------------+------+-----+-------------------+----------------+
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 ?
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;
Merci de vos réponses![]()
Partager