|
Programiranje Java, Perl, VB, ASP, .NET, C, C++, Pascal, Delphi Sponzor: |
|
Alati teme | Način prikaza |
|
24. 09. 2006. | #1 |
član
Na probnom radu
Datum učlanjenja: 17.08.2006
Lokacija: Novi Sad
Poruke: 36
Hvala: 0
0 "Hvala" u 0 poruka
|
Zavisi od logike aplikacije.
Ako su delovi članka logicki odvojene celine, tj. ne prestavljanju zajedno jednu celinu, onda je rešenje pod 1. Svaki deo treba da ima poseban unos u bazu. Ali ako je članak jedna logička celina koja se samo prikazuje na više stranica, onda nipošto rešenje pod 1! Jedan članak jedan unos. By the way, ne moraš odvajati stranice posebnim znakom... Jednostavno prelomi stranicu posle odgređenog broja linija, slova — tako ćeš uvek moći lako da stigneš do stranice koju želiš. |
24. 09. 2006. | #2 |
Ivan Dilber
Sir Write-a-Lot
|
Sto se perfomansi tiche, mislim da ne posmatras to dobro...podela clanaka na strane nece bitno uticati na perfomanse, jer ce ljudi da citaju text u medjuvremenu, a sad da li ce na kraju procitanog texta da kliknu
na sledecu stranu ili na neki drugi text tvojoj bazi je svejedno, nece ti to stvoriti neki dodatni posao. Varijanta sa cuvanjem integralne verzije clanka je u tom slucaju losija po pitanju perfomansi jer ti svaki put iz baze moras da dovuces ceo clanak (sto je da kazemo 5,6 puta vise podataka), plus da ga parsiras da bi nasao stranu koja ti treba. Odvojene strane ce krace drzati zauzetu bazu i manje ce biti CPU intezivne. Ako te perfomanse baze brinu (a ne mrzi te da programiras malo vise) mozes da cuvas gzipovane podatke u bazi, pa da ih otpakujes on the fly nakon dohvatanja iz baze. Iako deluje kao dodatna komplikacija, to u stvari povecava perfomanse jer baza mora da radi sa svega oko 10% realne kolicine podataka, a gzip je veoma brz, tako da se ukupno dobije na perfomansama. Tako da sam ja za prvo resenje gledano iz ugla perfomansi, jedino sto je tu dodatni posao je resenje za editovanje texta. To je najlakse resiti tako sto ces sastaviti komplet text, dati ga na editovanje adminu(ili kome vec), i onda ga ponovo uvesti u bazu stranu po stranu. To omogucava da naknadno preraspodelis text po strana ako zatreba. Najzgodnije je da kad se kuca text pomocu neke oznake (taga) markiras page-break, i onda kad se text ubacuje u bazu, on se podeli po tim oznakama. Ruku na srce, 600K strana mesecno i nije tako puno, tako da mozes sasvim lepo da prodjes i cuvajuci komplet textove sa mnogo manje programiranja...
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 24. 09. 2006. u 20:39. |
24. 09. 2006. | #3 |
Vladan Zirojević
Grand Master
|
I jedno i drugo rjesenje je OK. Ja licno bih za taj slucaj (pogotovo ako je to stvarno paginacija samo, a ne neke cjeline koje treba posebno obradjivati u nekom drugom smislu od prikazivanja) izabrao rjesenje br 2. I cini mi se lakse za odrzavanje.
@Alef: Uvijek je bolje rucno naznaciti gdje je kraj stranice, automatika u tom slucaju nije uvijek zgodna, jer se obicno radi o cjelinama teksta, pa je bolje da stranice ne budu striktno istih duzina, nego logicki podijeljene. @ivanhoe: U slucaju zip-a, kako bi rijesio pretragu? |
24. 09. 2006. | #4 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Ja se slažem sa Alefom. Ako su članci logičke celine, čuvati ih kao celine. Za deljenje na stranice može se koristiti ručno ubačen delimiter, ali treba razmisliti i o "inteligentnijem" rešenju koje bi automatski delilo tekst na zadati broj strana, ali vodeći računa da se stranice po mogućnosti cepaju neposredno pre, na primer, Hx taga.
Što se tiče optimizacije, ja ne volim da joj pribegavam pre nego što sam siguran da je zaista neophodna. Dakle, uvek polazim od što čistijeg i jednostavnijeg rešenja (u ovom slučaju čini mi se da je to varijanta sa integralnim člancima), a u optimizaciju krećem tek ako 1) imam potrebe i ako 2) sam siguran da će mi neki zahvat (npr. cepanje članaka) bitno poboljšati performanse. |
25. 09. 2006. | #5 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Kod čuvanja stranica odvojenih separatorom mi se ne sviđa par stvari:
1. Deluje mi nekako prljavo - čim kod modelovanja baze treba da se koristi separator na nivou podataka kako bi se označila konstrukcija to mi ne smrdi na dobro. 2. Aplikacija mora da radi više - aplikacija je previše uključena u obradu podataka, ako može da se ide na to da kontroler samo servira podatke bez ikakve obrade na to bih išao (kao najjednosatavnije rešenje). 3. Čovek dođe i traži "firefly" npr. Ta reč se pojavljuje na trećoj stranici. Ti tehnički moraš da učitaš kompletan sadržaj, razbiješ ga, odradiš foreach or whatever dok ne nađeš stranicu gde se nalazi tražena reč i tek onda serviraš tu stranicu. Isto previše rada od strane aplikacije. Ima tu još par stvarčica, ali ovo su najveće zamerke. Kako god da okreneš, oba rešenja će raditi posao i OK su. S jedne strane imaš malo složeniji model (dodatna tabela + relacije) što neće predstavljati probleme ako imaš dobar ORM, s druge imaš konstantno veći load i aplikacije mora da zasuče rukave. Iskreno, mislim da ovo neće previše uticati na performanse. Napravi da je najbolje dizajnirano, pa tek onda, ako stvarno počne da pravi probleme, lako ćeš proći i napraviti brže rešenje na osnovu konkretnih podataka koje budeš imao "na licu mesta" (broj hitova, broj upita, brzina izvršavanja etc). To je po meni bolje od dizajniranja aplikacije na osnovu pretpostavke koja lako može biti neispravna.
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog Poslednja izmena od Ilija Studen : 25. 09. 2006. u 01:08. |
25. 09. 2006. | #6 | |||
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Ok, očigledno su čoveku stranice logičke celine i više mu paše prvo rešenje, ali možda bi bilo korisno da nastavimo raspravu teoretski...
Citat:
Citat:
Citat:
|
|||
25. 09. 2006. | #7 |
Goran Pilipović
Sir Write-a-Lot
|
Kod prvog rešenja, gde je svaka strana poseban record, treba obratiti pažnju na pretraživanje jer može da se desi da za isti query izbaci recimo 5 rezultata, a svih 5 su isti tekst. Meni bi to smetalo, ali to ne mora da bude bug, može da bude i feature.
Zatim, šta se dešava kada treba da se zameni redosled? Kod prvog rešenja moraju da se tumbaju recordi odnosno da se menja page_no ili šta god se koristi, kod drugog rešenja copy-paste text. Kod drugog rešenja je mnogo lakše promeniti strane, na primer, ako želim da se prva strana spoji sa drugom, i da umesto 3 sada ima 2 strane, samo se obriše taj marker i sve je spremno, kod prvog rešenja bi morao da se kopira tekst 2 strane i ubaci u prvu... Generalno, oba rešenja imaju svoje prednosti, glavno pitanje je ovde koliko se često menja taj sadržaj. Ako se ne menja često, ja bih išao na prvo rešenje.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
25. 09. 2006. | #8 | |
Ivan Dilber
Sir Write-a-Lot
|
Citat:
__________________
Leadership is the art of getting people to want to do what you know must be done. |
|
25. 09. 2006. | #9 |
Diskutabilni diskutant
Wrote a book
Datum učlanjenja: 09.04.2006
Lokacija: Brno
Poruke: 1.113
Hvala: 36
103 "Hvala" u 74 poruka
|
Lepe informacije ekipa! Hvala!
Evo citajuci sve ovo razmisljam da verovatno necu imati vise od 1-2.000 strana tako da to nece predstavljati bilo kojoj bazi problem. (poen za soluciju 1) Iako nije neka resurs-o-zderac aplikacija imam kosmare od prica ljudi o adminima koji gase aplikacije samo zato sto rabe malo vise JVM. (prebacivanje rada na bazu, jos jedan poen za resenje 1) * desilo mi se to sa Joomla sajtom pre 4-5 dana , zato i pravim svoje resenje. Sto se tice automatizovanja odvajanja strana to jednostavno nije opcija posto uvek imam razlicite kolicine slika po strani koje prikazuju ono sto se radi (tutoriali) a ne mogu ni da odvajam posle x slika zato sto nekad su mi potrebne i dve slike za redom da bih nesto prikazao. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Httpool testira prikazivanje video-banera | Miloje Sekulic | Marketing i SEO | 12 | 10. 11. 2008. 10:59 |
Prikazivanje / skrivanje elemenata u liniji | moebius | (X)HTML, JavaScript, DHTML, XML, CSS | 3 | 04. 11. 2008. 08:21 |
WordPress plugin za glasanje članaka i objavu na naslovnoj | Deki80 | Sva početnička pitanja | 1 | 22. 03. 2008. 02:18 |
Pozitivna strana trača | Miloje Sekulic | Linkovi | 1 | 04. 10. 2007. 16:52 |