Stranica: 1/1.

Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 16 ruj 2012, 01:29
Postao/la pootzko
hajde da prije spavanja još postavim pitanje, možda mi netko bude znao odgovoriti =)

planiram s prijateljem raditi nekakvu web stranicu za učenje japanskih kanji znakova i pomalo kako razmišljam o tome, shvaćam da nemam jasnu viziju kako ću pospremiti sve podatke vezane za korisnike jer se nisam nikada susreo s nečim tako (relativno) složenim.. sve što sam radio vezano uz baze i pospremanje podataka su bile jednostavnije stvari gdje nisam morao razmišljati o ovako nečemu.




podaci o svakom pojedinom useru će biti na primjer:
- za nekoliko tisuća kanji simbola pospremiti podatke o - količini točnih odgovora, količini netočnih odgovora, najdužem streaku odgovora (uzastopni točni odgovori), duljini trenutnog streaka, da li je neki znak uopće otključan (jer bi se ovisno o uspješnosti trebali otključavati novi znakovi za vježbanje)..

- onda iste te informacije za vokabular (to su recimo kombinacije od nekoliko znakova koji tvore neku logičku cjelinu kao na primjer znakovi za "big + person = adult" jer se u japanskom tako slažu riječi.. i sad opet za sav taj vokabular ista ova priča oko količini točnih i netočnih odgovora i svega ostalog. a tog vokabulara će biti više nego samih kanji znakova..

- onda na primjer - otključani achievementsi, reputacija i neke ovako uobičajene informacije vezane za usera..




onda druga stvar - informacije o svakom znaku posebno. na primjer, svaki znak bi trebao sadržavati:
sam znak,
opis značenja znaka,
izgovor,
drugi izgovori (jer ovisno o situaciji/kontekstu gdje se koristi, ista značenja imaju drugačije izgovore odnosno u principu se radi o totalno drugim riječima s istim značenjem),
mnemonički opis koji pomaže pri pamćenju značenja znaka,
mnemonički opis koji pomaže pri pamćenju izgovora znaka,
alternativna značenja,
i sl..

da li ovo uopće pospremati u bazu ili ih pohranjivati kao XML fileove u odvojenom folderu budući da to ne bi trebalo biti nešto što će se dinamički previše mijenjati?




meni se sada postavlja pitanje - kako uopće kvalitetno izmodelirati te sve podatke i kako ih i gdje pospremiti? da li koristiti neku standardnu bazu poput mysql-a ili nešto naprednije poput postgre-a? ili nešto poput couchdb-a ili mongodb-a? pospremiti sve lokalno u json ili nešto slično pa onda taj json serijalizirati i tako direktno grunut u bazu? tu mi se postavlja pitanje koliko često updateati podatke jer ako ću gurati cijeli json u bazu, da li to znači da nakon svakog klika kada se neka vrijednost (recimo nekakav broj točnih odgovora promijeni) da moram svaki put taj jedan ogromni json gurat u bazu i updateat ju (to mi se čini kao overkill)? ili to razlomit na recimo da se mora dogodit makar 5-10 promjena da bi se sama baza updateala (tu mi se opet javlja problem - a što ako user u određenom trenutku jednostavno odluči stisnut "x" i zatvorit stranicu, kako tu spriječiti da se podaci izgube?)?

tona je pitanja, a ja sam totalno clueless oko ovoga.. ako imate kakvu literaturu ili link za preporučit što bih uopće trebao proučiti vezano uz ovu tematiku, ili ako imate konkretne prijedloge, koji su uopće pristupi ovim problemima i kako se rješavaju, nekakvi best practices ili nešto.. bio bih vrlo zahvalan.

ako nešto nisam dovoljno dobro objasnio, recite pa ću se potrudit bolje objasniti.

thnx =)

Re: Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 16 ruj 2012, 11:41
Postao/la pootzko
i btw, ne znam da li je to samo za moj pojam podosta podataka. tj. ne znam ni procijeniti da li se tu radi o zbilja velikoj ili nekoj umjerenoj količini podataka koja bi ili ne bi trebala predstavljati problem), nekako mi je u glavi cijelo vrijeme da bi guranje cijelih json objekata te veličine mogao postati problem što se tiče performansi.

Re: Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 16 ruj 2012, 12:18
Postao/la shrike
Čini mi se da ubacivanjem jsona samo stvaraš dodatni nepotrebi layer. Mislim da bi ti bilo najbolje napraviti točan popis stvari koje trebaju biti memorirane, zatim ih grupiraš po zajedničkim faktorima poput recimo relevantnosti, razine znanja ili po grupama (vokabular, razina, sintaksa, ...) itd (nemoj me sada tu hvatati) i onda oko toga razviješ bazu.
Odabir baze (performanski gleano) će utjecati na to koliko će usera biti logirano istovremeno, kako si ti složio tu bazu kao i koliko ti j server. E sad....

Re: Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 16 ruj 2012, 14:48
Postao/la pootzko
hm, pa ne bih baš rekao da mi je json nepotreban.. vrlo je koristan u fron-endu u kojem uz pomoć njega imam manje kaosa. e sad pitanje je da li ga stavljati takvog u bazu ili manje logičke komade jsona ili imati sve odvojeno po tablicama i entryjima. neki su predložili jedno, neki drugo ^^

za početak (budući da nas je malo i da ćemo to raditi u slobodno vrijeme, razvoj toga bi mogao potrajati godinu-dvije) će sve biti na shared hostingu, a kasnije ako bude potrebe za tim će ići dedicated server..

Re: Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 17 ruj 2012, 08:56
Postao/la jurastublic
Pošto postavljaš početnička pitanja, najbolje bi ti bilo odvojiti nešto vremena da se upoznaš s modeliranjem relacijskih baza podataka i posebno, normalizacijom podataka. Ta pravila će ti pomoći da shvatiš kako organizirati podatke koje imaš i kako ih posložiti za daljnja proširenja strukture. Vjeruj mi, sve će ti sjesti na mjesto, koliko god komplicirano izgledalo. Imaš po internetu, potraži, recimo "relational database design" i sl.

Re: Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 17 ruj 2012, 17:48
Postao/la kepica
@jura: ovo je daleko od početničkog pitanja, nemoj zezat

@pootzko: dobro si ti to razmislio. i uglavnom si dobro već posložio stvari.
ja bih kao i ti, podijelio stvari - dio bih stavio statički - razbacao po fajlovima, pa neka json ili php ili šta već koristiš, otvori po potrebi

što se tiče session varijabli, one se moraju snimati u bazu kontinuirano - kod svake promjene, i tu nema brige oko toga da će to zatrpati server - svaki pokušaj optimizacije je tu potpuno nepotreban.

a što se tiče ideje da json objekte trpaš u bazu, to mi je sporno. kao što sam rekao - ja bih radije imao pet tisuća fajlova sa različitim statičnim podacima - objektima, za svaki znak posebno. a bazu bih koristio samo za session varijable

Re: Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 18 ruj 2012, 09:35
Postao/la Marijek
pootzko je napisao/la:i btw, ne znam da li je to samo za moj pojam podosta podataka. tj. ne znam ni procijeniti da li se tu radi o zbilja velikoj ili nekoj umjerenoj količini podataka koja bi ili ne bi trebala predstavljati problem), nekako mi je u glavi cijelo vrijeme da bi guranje cijelih json objekata te veličine mogao postati problem što se tiče performansi.
odgovorit ću samo na ovo - to nije puno podataka, za usporedbu, baratam sa bazama podataka koje imaju po 100+ milijuna zapisa u jednoj tablici, i par takvih tablica plus hrpetina manjih.

Baze su oracle i mysql...

Re: Kako modelirati i pospremiti hrpu user-related podataka?

Postano: 18 ruj 2012, 09:56
Postao/la pootzko
hvala svima :)