Spravne vytvorenie modelu pre niekolko suvisiacich tabuliek
- Stic
- Člen | 28
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:
- Vytvoril by som si repository pre kazdu tabulku v databaze
- Kazde repository registrujem ako sluzbu v config.neon
- 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
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 :)