pozdrav,
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.
hvala =)