Forme i privilegije

recimo ovako:

aplikacija se satoji od modula, svaki modul od formi (prikaz,unos, pretraživanje i sl.),
u bazi se drže useri, forme, moduli i prava za svakog usera nad formom.
za svakog usera se dinamički generira menu po pravilima iz baze.
mene zanima gdje držati te podatke o pravima usera i formi, a da se ne mora svaki puta dohvaćati iz baze nakon logina.
user se logira i njemu se kreira menu, a što ako se stranica, da li se opet sve vuče iz baze ili ima neki način preko sesija i cookie-a?

mene zanima best practice.

hvala

najbolje je spremiti u session… kod ulogina učitaš sva prava i spremiš u session.

bilo bi najbolje da imaš klasu tipa User koja će imati metodu:
hasAccess($view, $action, $…)

i ta funkcija da onda provjerava u sessionu

cookiesima ne vjeruj, samo sessionu…

Ukoliko ce ti aplikacija imati puno online usera zaboravi i na session, isto tako i ako trebas jako puno podataka spremiti u session zaboravi, onda koristi pisanje i citanje iz baze… za sve ostalo tu je session…

edit:
mozes koristiti i spremanje u file, to je uvijek najbrze spremanje…

U kom paralelnom svemiru? :slight_smile:

u svakom…

Ako laze koza ne laze rog:

vrijeme pisanja fajla je 0.00086799999999998
vrijeme pisanja u bazu je 0.076023
vrijeme citanja fajla je 0.00035299999999999
vrijeme citanja baze je 0.001014

Pisanje teksutalnog fajla je bilo i pisalo se samo dvije rijeci kako u bazu tako i u fajl. (sekunde su u pitanju)

mysql sprema na disk isti podatak, a posto on radi jos provjera i radnji do spremanja mora biti vece vrijeme…

oni koji nisu programirali u low level programskim jezicima to ne mogu shvatiti jer misle da i sessioni “vise negdje u zraku”(radnoj memoriji) sto isto tako ne stoji, spremaju se na disk, a svaka funkcija veceg levela od direktnog zapisivanja bez ikakvih radnji dodatnih, je uvijek sporija…

logika i testovi brzine ne lazu…

logika nalaze da je spremanje na disk najsporija operacija, a to mi se neda objasnjati zasto je tako, mislim da se čak i u osnovoj školi uči o tome…

i ne moze se testirati s dva broja jer to nije “real-world” scenarij. isto tako treba vodit racuna da se zapisani podaci moraju i procitati…

pa razmisljati kasnije o “konkurentnosti” aplikacije, sto se da staviti u cache i koji cache, a sto ne…

u file jedino ima smisla staviti pojedine rolove, npr:

ali i to je pitanje koliko je pametno pri peaku…

autor teme vjerojatno nece promasiti s bilo cime da stavi.