[POO] Problème de conception POO et requêtes sql
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:
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
Code:
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
}
} |
Et enfin la classe Activité qui hérite également de la classe mysql
Code:
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?