Bonjour,
En fait j'ai un petit problème au niveau de la conceptualisation de mes classes
Donc au niveau conceptuel j’ai par exemple 2 tables :
La table activitée (id, lib adr, lieu, id_dept)
Et la table departement (id_dept, cd_dept, lib_dept)
Relationnellement parlant : une activité concerne un département.
Niveau programmation j’ai une classe qui interagit avec la bdd mysql (dans ce cas présent) avec connection à la base et exécution de toutes les requete sql.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Class mysql{ Constructeur(){ } function selection_mysql(table_en_paramètre, tableau_ de_champs_de_la_table, Identifiant_ciblé){ //Construction de la requête et retour du résultat dans un tableau associatif } }
La classe departement qui hérite donc de la classe mysql
Et enfin la classe Activité qui hérite également de la classe mysql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Class departement extends mysql{ Constructeur(){ } function selection_departement(identifiant_ciblé){ if ($this->selection_mysql(nom_de_la_table, champ_de_la_table, id_de_l_enregistrement)) //Construction de la requête et sauvegarde du résultat dans un tableau associatif } }
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 Class activitee extends mysql{ Constructeur(){ } function selection_activitee(identifiant_ciblé){ if ($this->selection_mysql(nom_de_la_table, champ_de_la_table, id_de_l_enregistrement)) //Construction de la requête et sauvegarde du résultat dans un tableau associatif : “ select * from activite where id_activite= « $id_activite » “ //A partir de l’id département de la table activitée récupérer les codes et libellées correspondant dans la table département “ select * from department where id_depart=« $id_departement (récupéré du résultat de la première requete) » “ $this->departement = new departement(); $this->departement->selection_departement($this->tableau_activite[$this->champs[“id_dept”]]); $this->tableau_activite[$this->champs[“id_dept”]]=$this->departement; } }
Au final je fais 2 requetes pour construire mon tableau activitée avec les attributs du département correspondant.
“ select * from activite where id_activite= « $id_activite » “
“ select * from department where id_depart=« $id_departement (récupéré du résultat de la première requete) » “
J’aimerais organiser me classes d'une manière et optimale de sorte de pouvoir effectuer une seule requete avec jointure
“ select * from activite, departement where activite.id_dept=department.id_dept and id_activite= « $id » “
Je pensais rajouter une function jointure dans ma classe mysql mais ca devient trop bordélique à gérer.
Je me demandais si vous auriez pas une idée de conception et structuration de classe de sorte de pouvoir utiliser une seule reuquete avec jointure plutot que plusieurs simples?
Partager