[RESOLU] Table de liens mysql et classes POO PHP

Petit nouveau ! | 4 Messages

03 juil. 2020, 14:38

Bonjour,

Je souhaite créer les classes à partir d'une base de données existante.

J'ai une table "article" qui contient un champ "id_article" et une table "lieu" qui contient "id_lieu" et enfin une table de lien qui contient donc "id_article" et "id_lieu".

Je peux ainsi attribuer plusieurs lieux à un article, et bien sûr attribuer plusieurs articles à un lieu.

Je dois créer donc mes classes. Si je veux obtenir par exemple la liste des articles par lieu ou la liste des lieux par article :

- Dois-je créer une classe article + une classe lieu, puis dans la classe "article" j'effectue une requête SELECT UNION avec la table lieu, et dans la classe lieu une requête SELECT UNION avec la table article
- ou alors effectuer les requêtes ci-dessus uniquement dans la classe article
- ou enfin créer une troisième classe "article-lieu" qui contient les requêtes ci-dessus?

JE vous remercie par avance de votre aide
Modifié en dernier par Alexb26 le 03 juil. 2020, 15:53, modifié 1 fois.

Avatar du membre
Mammouth du PHP | 1609 Messages

03 juil. 2020, 15:31

Salut, y a un truc pas net dans ton schéma. Si article porte l'id de lieu, je suppose donc que la relation est 1 article, 1 lieu et 1 lieu, n articles. La table intermédiaire est inutile dans ce cas car elle est utile uniquement pour une relation n,n.
Développeur web depuis + de 20 ans

Petit nouveau ! | 4 Messages

03 juil. 2020, 15:52

Hello,

Désolé pour l'erreur il n'y a effectivment pas d'id_lieu dans la table article

Avatar du membre
Mammouth du PHP | 1609 Messages

03 juil. 2020, 16:00

Moi dans ce cas je ferai une méthode getLieux sur article et une méthode getArticles sur lieu. Je vois pas trop l'intérêt d'une classe intermédiaire du moment ou c'est juste une table de liaison simple avec 2 colonnes id (sans données additionnelles).
Développeur web depuis + de 20 ans

Petit nouveau ! | 4 Messages

06 juil. 2020, 08:43

Merci pour ta réponse! Encore une petite question : par exemple pour un article donné (getUnique), j'ai donc l'objet article et l'objet lieu correspondant à l'article qui sont affiché sur la page. Mais où mettre la requête qui sélectionne le lieu d'après un article donné :
- dans l'objet article ?
- dans l'objet lieu ?
- dans un nouvel objet article-lieu ?
Merci par avance de m'éclairer

Mammouth du PHP | 1967 Messages

06 juil. 2020, 10:40

si tu part de l'article, ta méthode getLieux doit se trouver dans l'objet article et lui il contiendra 0, 1 ou plusieurs instance de l'objet lieux.

Si tu part d'un lieux, c'est le contraire, ton objet lieu possède une méthode getArticles et donc il contiendra 0, 1ou plusieurs articles.

ne te casse pas la tête avec une classe intermédiare.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 4 Messages

06 juil. 2020, 11:25

Merci beaucoup!