Kde provádět výpočty dat v DB a jak je přiřadit k vracenému objektu

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

Ahoj, mám takový základní dotaz.

Když potřebuji kromě klasického dotazu k získání záznamů z tabulky v DB ještě například provést výpočet nějakých hodnot z další tabulky, kde tento výpočet řeším – v modelu nebo v presenteru?

A jak tento výpočet zakomponuji do vraceného objektu, abych jej v šabloně mohl již jen vypsat – vše v jenom složitějším dotazu nebo lze výpočet provést dotazem zvlášť a pak výsledek k objektu připojit?

Konkrétně mám osoby, ke kterým potřebuji vypočítat jejich hodnocení, což je aritmetický průměr jednoho sloupce z jiné tabulky, která obsahuje jejich ID.

Díky za odpověď!

David Kudera
Člen | 455
+
0
-

Pokud to jde, tak bych to řešil v rámci sql, který pokládám někde v modelu. No a pokud to nejde, tak taky v modelu v nějaké metodě a v ní bych si to spojil dohromady (tak jak sám píšeš).

Jednoduše aby si presenter natáhl zpracovaná data a jen je předal šabloně a nemusel sám nic takovýho řešit

jandik.n
Člen | 41
+
0
-

A mohl bys mi prosím poradit blíže?

Mám tento dotaz:

<?php
public function getTranslators()
{
     return $this->db->table('translator')->where('active', 1)->order('surname');
}
?>

Jakým způsobem do výsledku ke každému záznamu mohu připojit např dotaz:

<?php
$evaluation = $this->db->table('translator_project')->sum('evaluation')->where('translator_id', $translator_id) / $this->db->table('translator_project')->count('evaluation')->where('translator_id', $translator_id);
?>

Díky!