Jakou DB vrstvu pro projekt typu ČSFD

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

Zdravím,

máme rozmyšlený jeden projekt typově trochu podobný ČSFD. Koketujeme teď s myšlenkou, zda použít ORM – konrétně Doctrine, nebo na takový projekt nasadit spíš NotORM, případně Nette Database nebo dibi.

Z mého pohledu má projekt na NotORM strmější křivku prvotního vývoje než na Doctrine, ale otázkou je, jak moc budou náročné případné změny. Do teď jsem dělal spíš takové rychlovky a ne projekt, který bych chtěl několik let udržovat v chodu a postupně ho rozvíjet.

Co byste poradili a na jaké útrapy se připravit?

Jan Tvrdík
Nette guru | 2595
+
0
-

Dlouhodobě udržitelné pro větší projekt je imho použití Doctrine (nebo jiné dobré ORM) a dibi (s nějakou abstrakcí).

Lopo
Člen | 277
+
0
-

NotORM neni podla mojich skusenosti vhodne na take velke veci – teraz prerabam na Nette+NotORM nejake veci a uz som par krat narazil, dokonca az tak ze som musel na par veci pridat inu DB vrstvu (konkretne sa pouzilo fluentPDO)

niektore veci sa daju poriesit pridanim podpory vlastnych JOINov (https://github.com/…ull/32/files) a fetchSingle (https://github.com/…ull/33/files) … ale nestaci to – problemy nastavaju hlavne ak tabulky v DB nejsu idealne navrhnute/vytvorene, tj vazby cez stlpce bez primarykey, cez nestandartne pomenovane stlpce a pod.

takze obecne sa da povedat ze pre pouzitie NotORM musi by aj prisposobena DB – ale ani potom by som sa asi nespoliehal na to ze NotORM bude postacovat

ic
Člen | 430
+
0
-

Jan Voráček napsal(a):

Zdravím,

máme rozmyšlený jeden projekt typově trochu podobný ČSFD. Koketujeme teď s myšlenkou, zda použít ORM – konrétně Doctrine, nebo na takový projekt nasadit spíš NotORM, případně Nette Database nebo dibi.

Tohle je asi otázka roku. Taky to stále řeším a měl bych to měl rád rozhodnuté, ale vážně nevím.

Jan Voráček
Člen | 90
+
0
-

Díky za reakce. Dopadlo to přesně tak, jak jsem si myslel :) Kdyby k tomu ještě někdo další chtěl něco dodat, klidně se rozepište. Řekl bych, že tohle je problém, který bude vrtat v hlavě více lidem.

@ic: Člověku asi nezbude než s něčím začít a posléze zjistit, zda to byl správný nebo špatný krok :)

JakubJarabica
Gold Partner | 184
+
0
-

Síce trošku neskôr, ale predsa. Mám projekt so 70+ tabuľkami(v princípe nič zložité, len veľa jednoduchých vecí dokopy) a pracujem na ňom už cca rok a pol a veľmi mi vyhovuje dibi s jemnou abstrakciou. Z koncepčného hľadiska to samozrejme správne nie je – je to niečo ako table data gateway nabušené dosť magickými metódami(existsBy{column}, findAllBy{Column}, findOneBy{Column}), ale robím na tom a budem len sám a mám veľmi prehľadné presentery(zvyčajne model mám v private atribúte). Všeobecne podľa typu projektu volím medzi dibi a Doctrine, ale vzhľadom na charakter projektov, ktoré robím, veľmi často víťazí pragmatické dibi.