Petit nouveau ! |
1 Messages
19 déc. 2006, 00:53
Pas tout à fait (voire pas du tout).
Un modèle de
données fait apparaître des
entités et entre ces entités des
relations.
Un modèle de
classes fait apparaître des
interfaces, des
classes abstraites et
concrètes, entre ces classes des
implémentations, des
héritages, des
compositions...
Le modèle de classes n'est pas une simple transposition du modèle de données même si c'est fréquent. Dans ce dernier cas, ce qu'on appelle le "mapping objet-relationnel" ne pose pas vraiment de problème alors que ce fameux mapping est bien une des difficultés de la C-P/OO quand on fait de la
programmation à objets et non
à entités si j'ose dire.
Pour ce qui est de "gérer [vous] les requêtes qui interrogent plusieurs tables", mere-teresa donne une partie de la réponse à ta question. Tu aurais dans tes classes "DAO" des méthodes du genre
getOrderByID($id)*,
getOrdersByCustomer($customer) etc avec dans le premier cas une méthode qui retournerait un objet de type Order (dont l'identifiant est celui spécifié) et dans le second cas un tableau d'objets de type Order (qui sont les commandes du client spécifié).
* cette méthode - assez fréquente - n'est pas vraiment
objet car elle fait apparaître l' "identifiant relationnel" (la clef primaire) dans la signature, quelque chose de plus orienté objet ressemblerait à
getOrder($prototype) où
$prototype serait un objet "critère" de type Order dont seul le champ
$id serait renseigné et encore ça se discute

!
C'est une introduction très succincte mais tu soulèves de très nombreux problèmes en peu de phrases.
Beaucoup de ressources en anglais sur le mapping O/R mais je propose cette lecture en français :
http://www.dotnetguru.org/articles/Pers ... apping.htm
Il y a des frameworks de persistance en PHP (aucune expérience dans ce domaine en PHP) :
http://www.nexen.net/actualites/php/php ... _objet.php