Model (Selection) – propojení více tabulek

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

Dobrý den,

používám modely, které jsou založené na Nette\Dabase – respektive jsou poděděné ze Selection a vytvářím je přes factories v config.neon – tak jak je popsáno v quickstartu.

Jak mám vyřešit situaci, kdy provádím nějaké operace nad modelem Users (např. přidávám uživateli kredit) a chtěl bych zároveň i uložit do jiné tabulky nějaké dodatečné informace (např. udělat záznam o transakci).

Včera mi kluci na nette@conf radili, že by jeden model neměl vědět o druhém. Tzn. neměl bych si jeden model předávat do druhého. Jak mám tedy řešit tuto situaci? Btw. je možné si nějak pomocí autowiring předávat i tyto factories, nebo to lze pouze pro služby?

jtousek
Člen | 951
+
0
-

Jeden model by neměl vědět o druhém ⇒ Presenter by měl po provedení transakce zavolat jiný model kam by uložil záznam ⇒ Kvůli korektnosti to celé obal databázovou transakcí ⇒ Tabulky v MySQL budou mít engine InnoDB.

ViPEr*CZ*
Člen | 814
+
0
-

PS: to neznamená, ale že by model nemohl obsluhovat více tabulek, pokud je v tom nějaká logika. Ale jako takový model by o jiném modelu (instanci) neměl vědět, jak už ti radili. ;-)

Editoval ViPEr*CZ* (18. 6. 2012 15:59)