Chodzi o powiazanie warstwy modelu (w modelu MVC) wraz z podwarstwa DAO. W przypadku pojedynczych tabel problemu nie ma, a rozwiazuje to mniej wiecej tak:
W akcji (czy inaczej PageController lub ActionController) uruchamiam kontretna klase DAO i jej metoda wypelnia model danymi i zwraca (w zaleznosci od wynikow - pojedynczy obiekt modelu lub tablice obiektow), mniej wiecej:
<?php $this->_request = $request; $db = DBManager::polacz(); $this->_db = $db; $this->_modeldao = new KlientDao($db); ?>
W $klient mam model (obiekt) klienta o konkretnym id i jego wlasnosci (id, imie, nazwisko,id_firmy). Moge teraz to latwo przekazac do kontenera, a pozniej wieswietlic dane w widoku.
Tego typu praktyka, ze model jest wypelniany danymi pobranymi z warstwy DAO (lub np. w przypadku formularza dodawania/edycji - od usera), wydaje sie dobra.
W przytoczonym wczesniej watku user Bora opisal swoje wlasne rozwiazanie + zdanie
"Coś takiego powinno ładnie działąć, problem jest dopiero w przypadku powiązań między tabelami. "
No wlasnie, jak sobie radzicie, jezeli klient ma w bazie relacje np. z firma i ten klient kupil jakas rzecz (wiec takze relacje z zakupy - w uproszczeniu ... chociaz to w zakupach jest id klienta)

Aktualnie robie to tak - tworze nowy obiekt DAO i szukam firmy:
<?php $this->_modeldao = new FirmaDao($this->_db); ?>
Jest to jakies rozwiazanie w przypadku jednego klienta, ale co w przypadku listy n klientow ? Mamy wtedy n+1 zapytan SQL :/ Oczywiscie mozna stworzyc sobie inna metode w klasie DAO, np.
szukajKlientowiFirmy, gdzie zapytanie byloby oparte na zlaczeniach, ale wtedy jak wydzielic pola i jak tworzyc obiekty. A moze firma w tym wypadku powinna byc tablica asocjacyjna w modelu klienta, a nie osobnym obiektem. Jak Wy to rozwiazujecie, bo przeciez podstawa ?
Niby byla juz podobna dyskusja na tego typu temat http://forum.php.pl/index.php?showtopic=64564&st=0, ale niezbyt byla rowinieta, poza tym, ze mozna skorzystac z Propela....