[ Tyler Durden @ 15.07.2014. 12:42 ] @
Recimo da imam dvije "bitne" tabele koje nisu direktno povezane (user i sport_event), već se nalazi 2-3-4 tabele "između" njih koje se referiraju na jednu ili drugu.
E sad, treba mi npr. koji user prisustvuje nekom događaju i ja to mogu da dobijem tako što spojim 3 ili 4 tabele između po FK, ali me zanima da li je ipak bolje da stavim u tabelu sport_event direktno user_id i zdravo?
[ jablan @ 15.07.2014. 13:46 ] @
To o čemu govoriš naziva se denormalizacija podataka i definitivan odgovor na tvoje pitanje ne postoji, jer zavisi od dosta stvari.

http://en.wikipedia.org/wiki/Denormalization

Da li već imaš probleme sa performansama upita?

Da li si analizirao query planove problematičnih upita?

Da li si iscrpeo mogućnosti indeksiranja?

itd
[ Tyler Durden @ 15.07.2014. 14:13 ] @
Baza je tek u dizajn fazi, tako da je odgovor na sva pitanja odrečan :-)
Pitam unapred baš da bih izbjegao eventualne probleme koji po defaultu mogu iz toga proizaći. Svi indeksi su postavljeni kako treba (bar ja mislim), biće tu i keširanja ovoga-onoga, ali me zanimao baš neki generalni odgovor.
Ne samo iz perspektive performansi, već i sa praktične strane.
[ nkrgovic @ 15.07.2014. 15:33 ] @
Skolski odgovor je da ides na normalizaciju, normalne forme i dizajn bez redudanse.

Iskustveni je da denormalizacija cesto pomaze :). S'druge strane, ako ne moras, drzi se normalizovane baze, a na denormalizaciju odvoj vreme za refactoring kad (i ako) ti bude trebala.
[ bogdan.kecman @ 15.07.2014. 15:41 ] @
obicno je odgovor ovakav - ako moras da pitas, nemoj da denormalizujes
[ jablan @ 15.07.2014. 16:21 ] @
Citat:
Tyler Durden:
Baza je tek u dizajn fazi, tako da je odgovor na sva pitanja odrečan :-)

Onda definitivno ne dupliraj podatke.

Prerana optimizacija je zaista ogroman problem - pričam iz svog iskustva.

Nemoj se bojati upita sa više JOIN-ova. Na kraju krajeva uvek možeš da pojednostaviš upite pisanjem VIEW-ova (nadam se da ih MySQL ima). A kad jednom otvoriš kutiju sa crvima zvanu denormalizacija, nema nazad. :)
[ Tyler Durden @ 15.07.2014. 16:59 ] @
Super za odgovore, jer tako sam i krenuo od početka. I sad radim pregled čitavog modela prije nego krenem sa kodom, i ovo mi je zapalo za oko pa sam htio da provjerim.