Voor de opslag van persistente data gebruik ik de design patterns Value Objects (ookwel Data Transfer Objects) en DAO (Data Access Objects). Voor elk domeinobject heb ik een VO klasse die voor elke kolom een veld heeft, als volgt:
en een DAO klasse, die voor een specifiek domeinobject functies heeft als get, findByBlabla en insert,update,delete.
nu zit ik met de volgende kwestie; de eigenschappen Project en Member in de klasse Service zijn verwijzingen naar andere domeinobjecten. momenteel geven de functies gewoon de waarde van de foreign key terug, maar idealiter zou ik meteen het juiste object willen hebben. hierbij is een probleem:
- ik moet databasefunctionaliteit in de domeinobjecten gaan zetten om on-the-fly het juist object op te vragen
- OF ik moet bij het SELECTen van objecten meteen alle gerelateerde objecten meefetchen. in geval van 1-op-veel of veel-op-veel relaties kost dit veel tijd, terwijl het vaak overbodig is
beide opties zie ik dus niet echt zitten. kan iemand met ervaring in deze patterns mij hierover adviseren? op internet is wel genoeg te vinden over DAO maar niks over relaties.
bedankt
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| <?php class Service {
private $id, $member, $project, $fullname;
// setters
public function setId($id) {
$this->id = $id;
}
public function setFullname($fullname) {
$this->fullname = $fullname;
}
public function setMember($member) {
$this->member = $member;
}
public function setProject($project) {
$this->project = $project;
}
// getters
public function getId() {
return $this->id;
}
public function getFullname() {
return $this->member;
}
public function getMember() {
return $this->member;
}
public function getProject() {
return $this->project;
}
} ?> |
en een DAO klasse, die voor een specifiek domeinobject functies heeft als get, findByBlabla en insert,update,delete.
nu zit ik met de volgende kwestie; de eigenschappen Project en Member in de klasse Service zijn verwijzingen naar andere domeinobjecten. momenteel geven de functies gewoon de waarde van de foreign key terug, maar idealiter zou ik meteen het juiste object willen hebben. hierbij is een probleem:
- ik moet databasefunctionaliteit in de domeinobjecten gaan zetten om on-the-fly het juist object op te vragen
- OF ik moet bij het SELECTen van objecten meteen alle gerelateerde objecten meefetchen. in geval van 1-op-veel of veel-op-veel relaties kost dit veel tijd, terwijl het vaak overbodig is
beide opties zie ik dus niet echt zitten. kan iemand met ervaring in deze patterns mij hierover adviseren? op internet is wel genoeg te vinden over DAO maar niks over relaties.
bedankt