[ Pkt @ 02.10.2009. 14:24 ] @
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)?
[ djoka_l @ 02.10.2009. 14:30 ] @
http://dev.mysql.com/doc/refma...n/date-and-time-functions.html
[ bogdan.kecman @ 02.10.2009. 15:34 ] @
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