DAO objekty a vazby tabulek M:N

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
SvvimX
Člen | 65
+
0
-

Ahoj,

mám pro každou entitu z DB třídu XxxDatabaseDAO. Ale zpusoby plateb a dodavatele maji vazbu M:N.

Pokud chci vypsat vsechny dodavatele vypada kod asi takle:

\CDatabaseDAOFactory:: getInstance () -> getShipperDAO -> getAll ( );

pro platby stejně. A jak teď co nejlépe udělat to, že chci vypsat všechny dodavatele a jejich platby?
Samozřejmě je tu možnost prasárny typu:

$shippers = \CDatabaseDAOFactory:: getInstance () -> getShipperDAO -> getAll ( );
foreach ( $shippers as $shipper ) {
  $payments = \CDatabaseDAOFactory:: getInstance () -> getPaymentDAO -> getAll ( array ( "shipper_id" => $shipper -> id );
}

jde mi o logiku tříd. Mám udělat speciální DAO ShipperPayment které bude mít přístup k tabulkám shipper, payment a vazební tabulce?
Pak ale zase toto krásné rozčlenění co tabulka to DAO třída, nad ní nějaký manager nad tím Presenter a nad tím šablony tak nějak bere za své.

Jak se to dělá správně? :-))

jtousek
Člen | 951
+
0
-

Jak se to týká Nette? Ani nepoužíváš Nette\Database. Doporučuji přečíst nějaké teoretické články ohledně správné architektury modelu.

Editoval jtousek (10. 6. 2012 7:45)

SvvimX
Člen | 65
+
0
-

jtousek napsal(a):

Jak se to týká Nette? Ani nepoužíváš Nette\Database. Doporučuji přečíst nějaké teoretické články ohledně správné architektury modelu.

Proč bych nepoužíval Nette\Database? Tu normálně používám. A Nette se to týká, jelikož Nette je framework s architekturou MVC, takže můj model je rozdělen na na entity, co tabulka to třída, DAO objekt a manager.
Odkažte mě na článek ohledně správné architektury modelu?