Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako izmodelovati mySql bazu (tabelu) za lakšu pretragu arhive vesti

[es] :: MySQL :: Kako izmodelovati mySql bazu (tabelu) za lakšu pretragu arhive vesti

[ Pregleda: 1224 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pkt

Član broj: 67358
Poruke: 31
*.teledot.net.



Profil

icon Kako izmodelovati mySql bazu (tabelu) za lakšu pretragu arhive vesti02.10.2009. u 14:24 - pre 178 meseci
Nisam uspeo da pronadjem ovakvu temu, ima samo slicnih koje mi dovoljno ne razjasnjavaju problem. Moj problem je sledeći. Najpre, želim da napravim neki sistem za objavljivanje vesti na sajtu. Napraviću neki admin deo gde admin manipuliše vestima, unosi, menja i briše. Na naslovnoj strani će biti izlistane
vesti.Nameravam da vesti koje su zastarele šaljem u 'arhivu'.

Problem je u tome što nisam siguran kako da čuvam u mysql bazi datum postavljanja vesti. Najpre sam izmodelovao bazu i tabele tako da sam definisao kolonu tabele za datum kao timestamp i dobio format 00-00-0000 00:00:00:0000 (klasični timestamp format). Prilikom unosa vesti unosio sam vrednost CURRENT_TIMESTAMP u ovu kolonu i dobijao trenutno vreme i datum. To radi dobro i mogu da čitam vrednost iz baze pa kroz PHP da izvlačim potrebne podatke (ako mi je potreban samo datum ili samo vreme). Kada vest zastari šaljem je u arhivu, odnosno postavljam vrednost polja arhiva tabele vesti na 1. E tu sam došao do problema.

Naime, želim da omogućim da korisnik može da pretražuje vesti po mesecima ili godinama ili čak danu. Za to mi je potrebno da iz baze pomoću SQL upita vučem tu informaciju o godini ili mesecu ili čak danu kome vest pripada. Pošto čuvam timestamp, to nisam u mogućnosti već moram da najpre učitam sve vesti iz baze pa da kroz PHP izvlačim te informacije. To mi deluje suludo. Možda postoji način da se iz timestamp-a odmah izvče ta informacija pomoću SQL upita ali ja ne znam pa zato pitam vas da mi objasnite.

Kasnije sam promenio model tabele i postavio da mi vrednost za datum bude tipa int i tu snimam vrednost koju dobijem iz PHP-a, (onaj broj tipa 12345656 ). Ali opet ne znam koji je to mesec, koja godina i tako redom. Šta da radim? Da li da snimam posebno u polje godinu, mesec, dan ili ima neko elegantnije rešenje da ne koristim bespotrebno redudansu i opterećujem bazu.

Moj model baze (deo za vesti je)

kategorijaVesti(#idKategorije, imekategorije)

vest(#idVesti,idKtegorije,naslov,kratka, duga, autor,datumpostavljanja, arhiva)

komentar(#idkomentara,#idvesti,tekst,email,imekomentatora)

P.S. Funkcija now() je funckija MySql-a ili? Šta mi vraća ta funkcija (mislim koji format)?
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3469

Jabber: djoka_l


+1465 Profil

icon Re: Kako izmodelovati mySql bazu (tabelu) za lakšu pretragu arhive vesti02.10.2009. u 14:30 - pre 178 meseci
http://dev.mysql.com/doc/refma...n/date-and-time-functions.html
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Kako izmodelovati mySql bazu (tabelu) za lakšu pretragu arhive vesti02.10.2009. u 15:34 - pre 178 meseci
Citat:
Pkt:  Funkcija now() je funckija MySql-a ili? Šta mi vraća ta funkcija (mislim koji format)?


yup, to je mysql funkcija

http://dev.mysql.com/doc/refma...me-functions.html#function_now

sta vraca zavisi od verzije mysql-a.

vraca ti vrednost u onom formatu u kom ti treba :D ... dakle svi formati datetime, date, time, timestamp se medjusobno automatski konvertuju (ne secam se dal od 5.0 ili od 5.1 na hw levelu se uopste ne razlikuju, sve su u stvari integer tip, na 4.x date/datetime je string te je pozeljno koristiti timestamp)

ono sto je kod 5.1 zgodno je da mozes da uradis particionisanje te tabele http://dev.mysql.com/doc/refman/5.1/en/partitioning.html po datumu (jedna godina - jedna particija na primer). obrati paznju da partitioning nije dugo dostupan korisnicima tako da jos uvek ima nepoznatih bagova + poznatih neispravljenih bagova, ali dosta pomaze kod tog tipa tabela
 
Odgovor na temu

[es] :: MySQL :: Kako izmodelovati mySql bazu (tabelu) za lakšu pretragu arhive vesti

[ Pregleda: 1224 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.