Spravne vytvorenie modelu pre niekolko suvisiacich tabuliek

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

Potreboval by som poradit ohladne toho ako spravne vytvorit model (repository) pre ulohy, ktore su definovane v niekolkych tabulkach.

Zadanie je taketo: Uzivatel moze do systemu pridat ulohu, ktora sa ulozi do tabulky ‚tasks‘, no ta obsahuje rozne tagy, ktore su definovane v tabulke ‚tasks_tags‘, moze obsahovat prilohy ulozene v tabulke ‚tasks_attachments‘ a tiez ku nej budu patrit riesenia ulohy ktore su definovane v tabulke ‚results‘ ktora zase nadvazuje na dalsie tabulky v databaze (results_attachments…).

Cital som nieco o nejakych fasadach, no mam z toho riadny gulas.

Moj zamyslany postup je takyto:

  1. Vytvoril by som si repository pre kazdu tabulku v databaze
  2. Kazde repository registrujem ako sluzbu v config.neon
  3. Vytvorim si model class pre ‚TasksModel‘, ktorej predam zavislosti – napr. ‚tagsRepository‘, ‚tasks_attachmentsRepository‘, ‚resultsRepository‘ – je toto „fasada“ ?

Je taketo riesenie spravne? Pouzivam 2.1.dev verziu – Mozem teda pouzit anotaciu @inject aj v modeli, alebo je to zlo (niekde vo fore som cital ze sa to nesmie, ale nechapem preco, ked to funguje :) )

Dakujem

Marek Šneberger
Člen | 130
+
0
-

Podle mě je rozdělení „Co tabulka, to model“ velice špatné. Osobně na to používám „selskej rozum“.

Máš tedy tasks… Uděláš si taskRepository (taskFacade, taskWhatever) a tam dáš všechny metody, které s tím souvisí.

getTaskTags($tagId), getTaskAttachments($taskId) atd… Pro začátek by to mělo stačit… Až to přestane stačit a budeš cítit že to není ono, předělá se to :)

Stic
Člen | 28
+
0
-

no to bolo uplne prve co ma napadlo, ale zaujimalo by ma ake su best practice, kedze by som sa rad programatorsky posunul aj dalej, aj ked moc casu na to nie je