Laten we voor het gemak een blogengine als voorbeeld gebruiken.
We hebben drie tabellen:
- Artikel
- Categorie
- Reactie
De relaties zijn als volgt:
- Artikel --- (veel op één) --- Categorie
- Artikel --- (één op veel) --- Reactie
Nu hebben we voor iedere tabel een Data Transfer Object (DTO) gemaakt en een Data Access Object (DAO). De DAO's en DTO's beperken zich, zoals de goede manier van doen, uitsluitend tot hun eigen tabel.
Stel we hebben nu de view van een overzicht van de meest recente blog artikelen. Per artikel worden zaken getoond zoals titel, body en datum, maar ook de categorie en het aantal reacties. De view moet dus gebruik maken van een samenvoeging van verschillende entiteiten (Artikel, Categorie (de naam van de categorie) en Reactie (aantal reacties)).
Wat is nu de goede manier om een relatie te leggen tussen de DAO's/DTO's (die beperkt zijn tot één entiteit) en de 'complexe' view? Is het een goede manier van doen om een soort view DTO object in te zetten die de benodigde data samenvoegt en aanbiedt aan de view?
Alvast bedankt!
We hebben drie tabellen:
- Artikel
- Categorie
- Reactie
De relaties zijn als volgt:
- Artikel --- (veel op één) --- Categorie
- Artikel --- (één op veel) --- Reactie
Nu hebben we voor iedere tabel een Data Transfer Object (DTO) gemaakt en een Data Access Object (DAO). De DAO's en DTO's beperken zich, zoals de goede manier van doen, uitsluitend tot hun eigen tabel.
Stel we hebben nu de view van een overzicht van de meest recente blog artikelen. Per artikel worden zaken getoond zoals titel, body en datum, maar ook de categorie en het aantal reacties. De view moet dus gebruik maken van een samenvoeging van verschillende entiteiten (Artikel, Categorie (de naam van de categorie) en Reactie (aantal reacties)).
Wat is nu de goede manier om een relatie te leggen tussen de DAO's/DTO's (die beperkt zijn tot één entiteit) en de 'complexe' view? Is het een goede manier van doen om een soort view DTO object in te zetten die de benodigde data samenvoegt en aanbiedt aan de view?
Alvast bedankt!