[ squirll @ 24.02.2012. 23:05 ] @
Pozdrav, radim sajt u php + mysql i treba da u tabelu zapisujem koliko je korisnika iz koje zemlje za svaki dan
Moram da imam polje uniqeID i date, i moram da imam mogucnost da saberem korisnike iz odredjene zemlje za odredjeni period
NPR:
USA:1|13-02-2012
USA:3|17-02-2012
USA:4|19-02-2012
TOTAL: USA:8

Kako da organizujem to u tabeli? da serializujem i ubacim u text polje ne ide, jer onda kad sabiram moram sve da izvlacim, rasclanjujem, trte mrte...problem.
A ako dodam 250 polja (za svaku zemlju posenbo) em sto je puno polja + isto nije lako da se racuna total...

[ nkrgovic @ 25.02.2012. 07:33 ] @
Pa niko ti nije iz dve zemlje istovremeno :). Samo uvedi numericki ID za svaku zemlju i u to polje uvedi jedan integer u kome pise kod zemlje. Onda radis:

SELECT COUNT(*) FROM ACCESS WHERE COUNTRY ID 'kod_za_US';

U cemu je problem? Zasto bi cuvao u bazi koliko je u toku jednog dana bilo posetilaca? Cuvaj po posetiocu iz koje je zemlje a onda saberi prostim SELECT-om. Indexiras polje i to ce lepo i brzo da radi.
[ squirll @ 25.02.2012. 09:12 ] @
nisi me razumeo,
uniqeID nije za posetioca vec za nesto drugo ... ID artikla, i iz koje zemlje je citan taj artikal...to znaci da moze za jedan artikal vise zemalja...
[ Milos911 @ 25.02.2012. 09:26 ] @
Pa svejedno.
Samo u njegov select dodas "AND artikalid='artikalid'"...
Znaci ovako: SELECT COUNT(*) FROM ACCESS WHERE COUNTRY ID = 'kod_za_US' AND artikal.id='artikalid'; Mozes da imas jedan artikal iz vise zemalja, nema veze.

A sta ti znaci ovo: "A ako dodam 250 polja (za svaku zemlju posenbo) em sto je puno polja + isto nije lako da se racuna total..."? Gde ako dodas 250 polja?
[ squirll @ 25.02.2012. 14:13 ] @
Nije svejedno, jer tako ne mogu.
Iz razloga sto ce biti u tabeli milionski upisi onda..Ne zapisujem ja u mysql posetioce i sl ja tu samo TOTAL zapisujem za taj jedan dan i artikal .

Treba da imam , ID artikla, datum, i drzave u jednom redu/upisu
drgu artikal, druge drzave, drugi/isti datum ...etc

ID-DATUM-US-RS-HR-BG-etc....-CA-CN
1-10-02-2012-5-7-120-45-98....98-98
^^^^^ ovo sam spominjao da je lose, 250 polja, jedno polje za svaku drzavu ... u tabelu ako dodam, gde drugde moz
[ bantu @ 27.02.2012. 07:10 ] @
Loša ti je logika, nemoj da dodaješ 250 kolona, napravi tabelu koja će da ti bude šifarnik država.
[ Shinhan @ 27.02.2012. 13:57 ] @
Tabela:

Code:

CREATE  TABLE `zemlje_artikala` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `article_id` INT UNSIGNED NOT NULL ,
  `country` CHAR(2) NOT NULL ,
  `visit_date` DATETIME NOT NULL ,
  `visit_count` INT UNSIGNED NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `country` (`country` ASC, `visit_date` ASC) );


I onda lepo upisuješ više redova ako jedan artikl želiš da povežeš sa više država. U "country" upisuješ ISO 3166 kod države.

Ako hoćeš broj korisnika iz određene zemlje, za određeni period, grupisano po artiklu:

Code:

SELECT SUM(visit_count) AS total_visits, article_id
FROM zemlje_artikala
WHERE visit_date BETWEEN "2012-02-12" AND "2012-02-15"
 AND country = "RS"
GROUP BY article_id