Model vs. db tabuly

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

Zdravím, můj dotaz není úplně k nette, možná spíš k návrhu modelu.
Můj problém je takový:
Mám db tabulku tab1 a k ní vytvořený model, který ji obsluhuje. Mám ale další tabulku tab2, která je s tab1 ve vazbě 1:1, jedná se v podstatě o rozšíření.

Měl jsem představu, že když mám model k tab1, vytvořím potomka, který domapuje hodnoty z tab2. Pak mě ale došlo, že insert, update, atd. budu muset udělat v druhém modelu všechny nově, protože data přichází v jednom poli. Tak si říkám, jestli nebude lepší pro oba udělat samostatný model, aniž by k sobě měly vazbu.

Jak řešíte takovéto situace?
Díky

srigi
Nette Blogger | 558
+
0
-

Vo vseobecnosti sa to riesi pomocou takej kolacovej schemy

Na samom vrchu je objekt, ktory pracuje so samotnou tabulkou. Pod touto vrstvou je tzv. DataMapper, ktory obsluhuje prepojenie tabuliek. Zvonka poskytuje API typu fetchAll() a on uz na zaklade svojej logiky vrati kompetizovany resultset. Service layer je potom uz to k comu pristupuje Presenter cez API typu $user->setBlocked(true) alebo $user->getContact().

Podrobne sa o tom ropisal nejaky DragonBe, sice je to o Modeloch v ZF ale da sa tam najst ako je ten DataMapper porieseny. V podstate vymenis jeho Zend_Db_Table, ktore sedia na najvyssom bode toho kolaca za svoje DB_table handler objekty.

Dalsia moznost je vykaslat sa na taketo „kraviny“ a pouzivat poriadne ORM

vlki
Člen | 218
+
0
-

Tesat do kamene!

Pěkný úvod do vrstvovaného modelu a DataMapperu jsou slajdy z přednášky Matthewa Weiera O'Phinneyho, jednoho z hlavních vývojářů Zend Frameworku.