Ik ben bezig met Propel, een ORM (object relational mapping)/Persistance layer voor PHP5. Deze is afgeleid van Apache Torque. Ik ben er heel blij mee, maar ik vraag me af of ik er wel helemaal goed mee werk.
Stel, ik heb een tabel 'question', 'answer' en 'client'. Meerdere clients kunnen 1 antwoord geven op 1 vraag. Dus als ik 7 vragen heb en 3 clients, dan heb ik 21 unieke antwoorden. Nou is er een object genaamd Criteria die de database selecties doet:
$result bevat Question objecten. In de OOP traditie zou je verwachten dat ik dan ook 7 Questions terug krijg, en als ik voor een Question::getAnswers() zou aanroepen, ik er 3 zou krijgen. Dat laatste werkt ook wel, maar ik krijg in eerste instantie gewoon 21 Questions terug. Is dat normaal in ORM layers als JDO of Torque of wat er ook allemaal is op dat gebied, of doe ik iets fout?
Stel, ik heb een tabel 'question', 'answer' en 'client'. Meerdere clients kunnen 1 antwoord geven op 1 vraag. Dus als ik 7 vragen heb en 3 clients, dan heb ik 21 unieke antwoorden. Nou is er een object genaamd Criteria die de database selecties doet:
PHP:
1
2
3
| $c = new Criteria(); $c->addJoin(AnswerPeer::QUESTION_ID, QuestionPeer::ID); $result = QuestionPeer::doSelect($c); |
$result bevat Question objecten. In de OOP traditie zou je verwachten dat ik dan ook 7 Questions terug krijg, en als ik voor een Question::getAnswers() zou aanroepen, ik er 3 zou krijgen. Dat laatste werkt ook wel, maar ik krijg in eerste instantie gewoon 21 Questions terug. Is dat normaal in ORM layers als JDO of Torque of wat er ook allemaal is op dat gebied, of doe ik iets fout?